5.12. ファイルの分割【split】

$ split [オプション] 入力ファイル名 [出力ファイルのベース名]

指定したサイズでファイルを複数のファイルに分割するには、split コマンドを使用します。

標準では 1000 行毎(1000 行に満たない場合は残り全部)に分割してファイルに出力します。出力ファイル名は、出力ファイルのベース名(デフォルトは x)に aa や ab などの文字列が付加されたものになります。出力ファイルのベース名は任意に指定することもできます。付加される文字列は、分割されたファイルをファイル名でソートして結合すると元のファイルに復元できるように配慮されています。

分割サイズを指定するためのオプションを以下に示します。

表 5-10. split コマンドのオプション

-b バイト数分割するバイト数を指定します。バイト数の後に k(KB)、m(MB) の単位を指定することができます。
-l 行数分割する行数を指定します。

例えば、sample.txt ファイルを 10行毎に分割し、ファイルのベース名を sample_split. として出力するには、次のコマンドを実行します。

$ split -l 10 sample.txt sample_split.
$ ls
sample_split.aa  sample_split.ab  sample_split.ac  sample_split.ad  sample.txt

この例では、指定した出力ファイルのベース名 sample_split.aaab... と文字列が付加されたファイル名で保存されています。

このように split コマンドで分割されたファイルは、cat コマンドでもとに戻すことができます。

$ cat sample_split.?? > sample.txt