utte

split ファイルを一定の行数やサイズで分割する

split [オプション] [入力 [接頭辞]]

試してみる

主なオプション

-l 数指定した行数ごとに分割する
-b サイズ指定したバイト数ごとに分割する(K、M などの単位が使える)
-d接尾辞を数字にする
-a 数接尾辞の長さを指定する(既定は2)
-n 数指定した数のファイルに分割する

解説

基本

split は大きなファイルを小さなファイルに分けます。何も指定しないと、1000行ごとに分割します。元のファイルは変わりません。

出力ファイルの名前

出力ファイルは、接頭辞に接尾辞を付けた名前になります。接頭辞を省くと x が使われ、xaa、xab、…となります。接頭辞にディレクトリを含めれば、別の場所にファイルを作れます。何も考えずに実行すると、今いるディレクトリにファイルが散らばるので、気をつけます。

分割の単位

-l は行数、-b はバイト数で分けます。-b は、行の途中で切れることがあります。行の途中で切りたくないときは、-C を使うと、行を保ったまま、指定したサイズ以内に収まるよう分割できます。

元に戻す

分割したファイルは、cat で順に結合すれば元に戻ります。シェルのワイルドカードは名前順に展開されるので、cat 接頭辞* で並びが正しくなります。

使い道

メールで送れるサイズに分ける、ログを一定の大きさで区切る、といった場面で使います。

関連するコマンド

LinuC 101の出題範囲