splitコマンド(ファイルを分割する)
形式
split[-a サフィックス長] [-b バイト数[k|m]|-l 行数][入力パス名[プリフィックス]]
機能
ファイルや標準入力の内容を分割して,ファイルに出力します。
引数
- -a サフィックス長
-
分割後にファイルの名前に付けるサフィックスの長さを指定します。
1から254の範囲で指定します。範囲外の値を指定した場合,または数値以外を指定した場合はエラーとなります(split: 指定値: too small/split: 指定値: too large/split: 指定値: invalid)。デフォルトは2です。複数回指定できますが,最後に指定した値が有効となります。
- -b バイト数[k|m]
-
ファイルをデータサイズで分割する場合のサイズをバイトで指定します。-lオプションと同時に指定した場合はエラーとなり,usageが表示されます。
-
k:キロバイト単位の値になります(1k=1,024バイト)。
-
m:メガバイト単位の値になります(1m=1,048,576バイト)。
複数回指定できますが,最後に指定した値が有効となります。
-
- -l 行数
-
行数でファイルを分割する場合に,行数を指定します。-bオプションと同時に指定した場合はエラーとなり,usageが表示されます。-bオプションおよび-lオプションを指定しない場合は,1000行が指定されたものとします。
- 入力パス名
-
入力するファイル名を指定します。省略時は標準入力を仮定します。
- プリフィックス
-
分割後にファイルの名前に付けるプリフィックスとして使用します。
分割後のファイルの名前は次のように決定します。
プリフィックス+サフィックス
プリフィックスは指定がある場合は,その文字列を使用します。指定がない場合は,「x」,「y」,「z」の順番に使用されます。
サフィックスは,a〜zを組み合わせた文字列を,サフィックス長で指定された長さ分使用します。サフィックスは文字コード順に使用されます。
例:2バイトの場合,aa,ab,ac,…,az,ba,bb,…となります。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1以上 |
エラー終了 |
注意事項
-
出力ファイルが入力ファイルと同じ場合,上書きをします。パス名が同じにならないようにプリフィックスを指定するか,または入力するファイルをカレントディレクトリとは別のディレクトリに移動してください。
-
分割後のファイル名が不足する場合は,エラーとなります(split: too many files)。作成したファイルは削除しないで終了します。この場合,サフィックス長を大きく指定する,またはバイト数および行数を大きくしてください。
-
分割後のファイル名の長さがシステムの上限を超えた場合,次のメッセージを出力してエラーになります。
【Windowsの場合】
split : ファイル名 : No such file or directory
【UNIXの場合】
split : ファイル名 : File name too long
-
Windowsの場合,ファイルおよび標準入力,標準出力をバイナリモードで入出力します。改行コードは変換しません。
使用例
-
test1.txtファイルを2行単位で分割します。
$ ls test1.txt $ cat test1.txt 0001:test1.txt 0002:test1.txt 0003:test1.txt 0004:test1.txt 0005:test1.txt 0006:test1.txt 0007:test1.txt 0008:test1.txt 0009:test1.txt 0010:test1.txt $ split -l2 test1.txt $ ls test1.txt xaa xab xac xad xae $ cat xaa 0001:test1.txt 0002:test1.txt $ cat xab 0003:test1.txt 0004:test1.txt $ cat xac 0005:test1.txt 0006:test1.txt $ cat xad 0007:test1.txt 0008:test1.txt $ cat xae 0009:test1.txt 0010:test1.txt $
-
test1.txtファイルを40バイト単位で分割します。
$ ls test1.txt $ cat test1.txt 0001:test1.txt 0002:test1.txt 0003:test1.txt 0004:test1.txt 0005:test1.txt 0006:test1.txt 0007:test1.txt 0008:test1.txt 0009:test1.txt 0010:test1.txt $ split -a 5 -b 40 test1.txt new $ ls newaaaaa newaaaab newaaaac newaaaad test1.txt $ cat newaaaaa 0001:test1.txt 0002:test1.txt 0003:test1$
-
オプションエラーのメッセージを表示します。
このメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。
C:\TEMP>%ADSH_OSCMD_DIR%\split -z split: illegal option -- z usage: split [-a suffix_length] [-b byte_count[k|m] | -l line_count] [file [name]]