csplit コマンド
目的
ファイルを個々のファイルに分割します。
構文
説明
csplit コマンドは、指定されたファイルをコピーし、コピーをセグメント単位に分割します。 元の入力ファイルはテキスト・ファイルでなければなりません。このファイルはそのまま残ります。
csplit コマンドは、セグメントをファイル xx00 に書き込みます。 xx99。 Argument パラメーターの指定回数によって異なります (最大値は 99)。 デフォルトでは、Argument パラメーターに 1 つの行番号が指定されます。 複数の行番号を指定した場合は、以下のルールが適用されます。
- File xx00 には、元のファイルの先頭から、最初の Argument パラメーターで指定された行番号までの行が入ります。
- File xx01 には、最初の Argument パラメーターによって指定された数で始まる行が入っています。 2 番目の Argument パラメーターによって参照される行。 引数として指定した各行番号には、新しいファイルの先頭を示すマークが付きます。
- File xxnn (最後に作成されたファイル) には、最後の Argument パラメーターで指定された数からファイルの終わりまでの行が含まれています。
例えば、元の入力ファイルが 108 行の場合に、以下のコマンドを入力したとします。
csplit orginal.txt 11 72 98csplit コマンドは、xx00 ファイル (1 行目から 10 行目まで)、xx01 ファイル (11 行目から 71 行目まで)、xx02 (72 行目から 97 行目まで)、xx03 (98 行目から 108 行目まで) の 4 つのファイルを作成します。
Argument パラメーターには、以下の記号とパターン文字列も指定できます。
| 項目 | 説明 |
|---|---|
| /パターン/ | 現在行から、指定されたパターンが含まれている行の 1 つ前の行までのセグメントが入ったファイルを作成します。 パターンが入っている行が現在行になります。 |
| %パターン% | 指定されたパターンが含まれている行を現在行に設定しますが、そのセグメントのファイルは作成しません。 |
| +数値 | 直前に指定されているパターンに一致した行から、指定された行数分だけファイルの進みます。 例:/Page/+5検索Page次に、5 行進みます。 |
| -数値 | 直前に指定されたパターンに一致した行から、指定された行数分だけファイルの前方に移動します。 例:/Page/-5検索Page、次に 5 行をバックアップします。 |
| {数値} | 直前に指定されているオプションを、この引数に指定した回数だけ繰り返します。 この番号の前には、パターンまたは行数を指定することができます。 前にパターンが指定されていると、csplit コマンドは指定されている回数だけこのパターンを再使用します。 前に行数が指定されていると、csplit コマンドはファイルをそのポイントから指定されている行数分ずつ分割します。 |
スペースなど、シェルにとって特別な意味を持つ文字が含まれているパターンは、すべて引用符で囲みます。 パターンには、組み込み改行文字は使えません。 次のような式の中で、[a-z]-(負符号) は、現在の照合シーケンスに従って、 からまでを意味します。 照合シーケンスは、文字範囲内で使用する等価クラス を定義できます。
フラグ
| 項目 | 説明 |
|---|---|
| -f 接頭部 | 作成されたファイル・セグメントに使用する接頭部を指定します。 この変数のデフォルト値は xx です。 |
| -k | エラーが発生した場合、作成されたファイル・セグメントを一切変更せずに残します。 |
| -n 数値 | 作成されたファイルの名前に使用する 10 進数の桁数を変更します。 デフォルトは、小数点以下 2 桁、つまり xx00 です。 xx99. 例えば、 -n 4 フラグを指定すると、新規ファイルは xx0000 という名前になります。 xx0099. |
| -s | 文字カウントの表示を抑制します。 |
終了状況
このコマンドは、以下の終了値を戻します。
| 項目 | 説明 |
|---|---|
| 0 | 正常終了。 |
| >0 | エラーが発生しました。 |
例
- テキストを分割するには、以下のようにします。book章ごとに個別のファイルを作成するには、次のように入力します。
上記のコマンドにより、xx00 から xx09 までの 10 個のファイルが作成されます。 xx00 ファイルには、第 1 章の前に掲載されている前付けの部分が入ります。 ファイル xx01 から xx09 には、各章の内容が入ります。 各章は、単語のみを含む行で始まります。Chapter章番号を入力してください。csplit book "/^ Chapter *[k.0-9]k./" {9} - 接頭部を指定するにはchapから作成されたファイルのbook次のように入力します。csplit -f chap book "/^ Chapter *[k.0-9]k./" {9}この分割bookchap00 から chap09までのファイルに。
ファイル
| 項目 | 説明 |
|---|---|
| /usr/bin/csplit | csplit コマンドが入っています。 |