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

1. 基本的な使い方

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

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

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

shell
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コマンドを使えばいい。
以下のようにコマンドを実行することで、ファイルを圧縮しながら分割保存させることが出来る。

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