splitコマンドは、標準出力やファイルを受け付けて指定された行数などでファイルに分割してくれるコマンドだ。 ファイルが大きすぎる場合や決まった行数ごとに内容が別れているファイルを分割して別のファイルにしたり、分割した内容ごとにコマンドを実行させたりすることができる。

1. 基本的な使い方

基本的には、以下のように標準入力やファイルを指定して分割をする。

command | split
split ファイルPATH
blacknon@BS-PUB-DEVELOP:~/test_split$ cat test.list
a01 a02 a03 a04 a05 a06 a07 a0...

ファイルや標準入力を指定行数で分割して、かつそれをそのまま(一時ファイルを作成せずに)次のコマンドに渡したいといったことがある。 例えば、以下のようなファイルがあったとして、5行ごとに合計を集計するといった処理をしたいとする。

blacknon@BS-PUB-DEVELOP:~$ cat test3.list
a01 13320
a02 64
a03 29730
a04 28184
a05 8993
b01 32490
b02 29077
b03 29590
b04 1291
b05 14097
c01 17676
c02 7998
c03 9720
c04 30072
c05 7565...

諸事情があって、圧縮したアーカイブファイルを分割して補完しておく必要が出たので、その備忘。
といっても、そんな大した事やるわけではなく、昔からあるsplitコマンドでの手法。

Linux/UNIXの場合は、splitコマンドを使えばいい。
以下のようにコマンドを実行することで、ファイルを圧縮しながら分割保存させることが出来る。

tar czvf - /アーカイブ化するディレクトリ | split -d -b 分割するバイト数 - 分割後のファイル名(連番)
[root@localhost work_1]# ls -l /work_1/
合計 307200
-rw-r--r--....