CSPLIT(1)

名称
csplit - 文脈に応じたファイルの分割

書式
csplit [-ks] [-f prefix] [-n number] file args ...

解説
csplit ユーティリティは、パターン args を使用して file を分割します。 file がダッシュ (‘-’) の場合、 csplit は標準入力を読みます。

オプションは次の通りです:

-f prefix
    生成されるファイルに、 prefix で開始する名前を与えます。 デフォルトは “xx” です。

-k  エラーが発生したり、 HUP, INT, TERM シグナルを受信しても、出力ファイルを削除しません。

-n number
    number 個の 10 進数字を prefix の後で使ってファイル名を作成します。 デフォルトは 2 です。

-s  各出力ファイル作成時に、それらの大きさを標準出力へ書きません。

args オペランドは、次のパターンの組み合わせです:

    /regexp/[[+|-]offset] 入力の、現在の行から、指定された基本正規表現 (これを含みません) までからなるファイルを作成します。 省略可能な offset を指定すると、その行からマッチがとられます。

    %regexp%[[+|-]offset] 上記と同じですが、出力ファイルは作成されません。

line_no
    入力の、現在の行から、指定された行番号 (これを含みません) まで からなるファイルを作成します。

{num}
    直前のパターンを指定した回数繰り返します。 これが行番号パターンに続く場合、 num 回にわたり、 line_no 行毎に新規ファイルが作成されます。 ファイルの最初の行は、歴史的な理由から行番号 1 です。

すべてのパターンが処理されると、残りの入力データ (もしあれば) は新規ファイルに書かれます。

現在の行より前での分割や、ファイルの終端より後での分割を要求すると、 エラーになります。

環境変数
LANG, LC_ALL, LC_CTYPE, LC_COLLATE の環境変数が、 environ(7) の記述通りに、 csplit の実行に影響します。

使用例
mdoc(7) ファイル foo.1 を、各セクション毎に 1 ファイルへと分割します (最大 20 個):

    csplit -k foo.1 '%^\.Sh%' '/^\.Sh/' '{20}'

最初の 99 行の後およびその後の 100 行毎に、標準入力を分割します。

    csplit -k - 100 '{19}'

診断

関連項目
sed(1), split(1), re_format(7)

歴史
csplit コマンドは PWB UNIX に登場しました。

規格
csplit ユーティリティは p1003.1-2001 に適合しています。