容量, 行数指定でファイル分割 & 分割ファイルを結合

splitコマンドを利用してファイル分割する方法を確認します。「容量指定で分割」「行数指定で分割」する方法を取り上げます。また、分割したファイルをcatコマンドで結合する方法についても確認します。

ファイル分割|split

容量指定|split -b

10MBのファイルが存在します。

$ ls -lh
total 20480
-rw-r--r--  1 xxx  staff    10M Jun  9 14:30 dummy10MB.file

2MBずつに分割します。

$ split -b 2m dummy10MB.file split_dummy

2m2MB を表します。

指定単位 補足
k KB
MB
G GB

以下、実行結果です。

$ ls -lh
total 40968
-rw-r--r--  1 xxx  staff    10M Jun  9 14:30 dummy10MB.file
-rw-r--r--  1 xxx  staff   2.0M Jun  9 14:32 split_dummyaa
-rw-r--r--  1 xxx  staff   2.0M Jun  9 14:32 split_dummyab
-rw-r--r--  1 xxx  staff   2.0M Jun  9 14:32 split_dummyac
-rw-r--r--  1 xxx  staff   2.0M Jun  9 14:32 split_dummyad
-rw-r--r--  1 xxx  staff   2.0M Jun  9 14:32 split_dummyae

行数指定|split -l

$ cat line.txt 
1
2
3
4
5
6
7
8
9
10

3行ずつに分割します。

$ split -l 3 line.txt split_line

以下、実行結果です。

$ ls -l
total 32
-rw-r--r--  1 xxx  staff  20 Jun  9 14:40 line.txt
-rw-r--r--  1 xxx  staff   6 Jun  9 14:41 split_lineaa
-rw-r--r--  1 xxx  staff   6 Jun  9 14:41 split_lineab
-rw-r--r--  1 xxx  staff   8 Jun  9 14:41 split_lineac
$ cat split_lineaa 
1
2
3
$ cat split_lineab
4
5
6
$ cat split_lineac
7
8
9
10

ファイル結合|cat

先ほど、行数指定で分割したファイルを結合してみます。

$ cat split_linea* >> merge_line.txt
$ cat merge_line.txt 
1
2
3
4
5
6
7
8
9
10