split コマンド
目的
1 つのファイルを複数のファイルに分割します。
構文
ファイルを、指定した行数の複数のファイルに分割する
split [ -l LineCount ] [ -a SuffixLength ] [ File [ Prefix ] ]
ファイルを、指定したバイト数の複数のファイルに分割する
split -b Number [ k | m ] [ -a SuffixLength ] [ File [ Prefix ] ]
説明
split コマンドは、指定されたファイルを読み取り、それを 1000 行単位で出力ファイルに書き込みます。 最初の出力ファイルの名前は、指定された接頭部 (デフォルト時は x) を接尾部 aa と組み合わせて作成され、2 番目の出力ファイルの名前は、指定された接頭部を接尾部 ab と組み合わせて作成されます。以降、zz (最大 676 ファイル) まで辞書順に同様の方法で作成されます。 接尾部の文字数およびその結果決まる出力名のファイル数は、-a フラグを使って増やすことができます。
PATH_MAX - 2 バイト (-a フラグを指定した場合は、PATH_MAX - SuffixLength バイト) より長い接頭部 は指定できません。PATH_MAX 変数は、/usr/include/sys/limits.h ファイルに定義されているとおり、最大の長さのパス名をシステムに指定します。
入力ファイルを指定しなかったり、- (負符号 (-)) のファイル名を指定すると、split コマンドは標準入力を読み取ります。
split コマンドは、すべての通常のテキストまたはバイナリー・ファイルに使用できます。 ファイルは、分割後に、cat コマンドを使用して元の形式に復元でき、ファイル・フラグメントは自動順序でリストされます。
フラグ
注: -b フラグと -l フラグは、同時には指定できません。
| 項目 | 説明 |
|---|---|
| -a SuffixLength | 出力名ファイルの接尾部を構成するのに使用する文字数を指定します。 文字数により、出力ファイルの名前の組み合わせの数が決定されます。 デフォルトは 2 文字です。 |
| -b Number | ファイルを Number 変数で指定したバイト数ずつに分割します。 Number 変数の最後に k (キロバイト) または m (メガバイト) の乗数を付け加えることにより、ファイルはそれぞれ Number*1024 バイトまたは Number*1,048,576 バイトに分割されます。 |
| -l LineCount | 個々の出力ファイルの行数を指定します。 デフォルトは 1000 行です。 |
終了状況
このコマンドは、以下の終了値を戻します。
| 項目 | 説明 |
|---|---|
| 0 | コマンドは正常に実行されました。 |
| >0 | エラーが発生しました。 |
例
- ファイルを 1000 行単位のセグメントに分割するには、以下のように入力します。
この例で book は、xaa、xab、xac という名前の 1000 行単位のセグメントに分割されます。split book - ファイルを 50 行単位のセグメントに分割してファイル名の接頭部を指定するには、以下のように入力します。
この例で book は、sectaa、sectab、sectac という名前の 50 行単位のセグメントに分割されます。split -l 50 book sect - ファイルを 2KB のセグメントに分割するには、以下のように入力します。
この例で book は、xaa、xab、xac という名前の 2*1024 バイト単位のセグメントに分割されます。split -b 2k book - ファイルを 676 を上回るセグメントに分割するには、以下のように入力します。
この例で book は、sectaaa、sectaab、 sectaac 以降 sectzzz までの名前の 5 行単位のセグメントに分割されます (最大 17,576 ファイル)。split -l 5 -a 3 book sect
ファイル
| 項目 | 説明 |
|---|---|
| /usr/bin/split | split コマンドが入っています。 |