Go to main content

マニュアルページ セクション 1: ユーザーコマンド

印刷ビューの終了

更新: 2022年7月27日
 
 

csplit(1)

名前

csplit - 指定した文脈に従ってファイルを分割

形式

csplit [-ks] [-f prefix] [-n number] file arg1... argn

説明

csplit ユーティリティーは、file オペランドが示すファイルを読み込み、その内容のすべてまたは一部を arg オペランドの指示に従って他のいくつかのファイルに書き出し、その出力ファイルのサイズを表示します。

オプション

サポートしているオプションは、次のとおりです。

–f prefix

生成されるファイルを、順番に prefix00prefix01、 . . . 、prefixn と名付けます。デフォルトは xx00 ... xxn です。prefix 引数が長すぎて、生成されるファイル名の長さが 14 バイトを超えてしまう場合はエラーとなります。その場合、ファイルは 1 つも生成されず、csplit は診断メッセージを伴って終了します。

–k

作成済みのファイルをそのままにしておきます。エラー発生時、デフォルトでは csplit は作成したファイルを削除します。

–n number

生成するファイル名の可変部分の桁数を number で指定します。デフォルト値は 2 です。

–s

生成するファイルのサイズに関する情報を出力しません。

オペランド

次のオペランドがサポートされています。

file

分割対象ファイルのパス名。- を指定すると標準入力とみなされます。

オペランド arg1 ... argn は、以下の組み合わせで指定できます。

/rexp/[offset]

現在の行から、rexp で示す正規表現の評価 (offset 指定があればそれも考慮) により得られる行の直前の行までを 内容とするファイルを生成します。rexp は、基本正規表現の規則に従っていなければなりません。正規表現には '\/' や '\%' を使用できます。バックスラッシュ (\) はシェルにとって特別な意味を持つため、このような形式は単一引用符で適切に引用する必要がありますoffset は行数を表す正または負の整数で、指定は任意です。指定するときは、符号 + または を先頭に付加しなければなりません。なお、この指定に従って行を選択したとき、生成されるファイルの行数がゼロになってしまう、あるいは 入力ファイル中の行数を超えてしまう場合、結果は不確定です。ファイル生成後、現在の行は、正規表現の評価により得られた行に設定されます。rexp のパターンマッチングは、常に現在の行から ファイルの終わりまでが対象となります。

%rexp%[offset]

このオペランドは、前述の /rexp/[offset] 指定と同じ意味ですが、入力ファイルから選択した行によるファイルの 生成は行われません。

line_no

現在の行から、行番号 line_no で示す行の直前の行までを内容とするファイルを生成します。生成したファイル中では、各行に 1 から始まる番号が振られます。現在の行は line_no で示す行に移ります。

{num}

直前のオペランドを繰り返します。この指定は、前述のどのオペランド の後でも指定できます。rexp のタイプのオペランドの後に指定すれば、そのオペランドは num 回繰り返されます。line_no オペランドの後に指定すれば、ファイルはその位置から line_no 行ごとに num 回だけ分割されます。

オペランドが示す行が、現在の位置からファイルの終わりまでの 間に存在していない場合、エラーが報告されます。

使用例 1 ファイルを分割および結合する

次の例は、4つのファイル cobol00 . . . cobol03 を作成します。


example% csplit -f cobol filename \
   '/procedure division/' /par5./ /par16./

分割されたファイルを編集した後、次のようにすると、再度 1 つにまとめることができます。

example% cat cobol0[0−3] > filename

この例は、元のファイルを上書きします。

使用例 2 ファイルを等分に分割する

次の例では、100 行毎に 10,000 行までファイルを分割します。–k オプションは 10,000 行未満しかなくても、作成されたファイルを保存します。ただし、エラーメッセージはそのまま出力されます。

example% csplit -k filename 100 {99}
使用例 3 各 C ルーチンごとにファイルを作成する

prog.c が通常の C のコード化規則 (ルーチンの最後の行の1文字目が } だけである) に従っていれば、この例では、prog.c 中の C ルーチン (21個まで) に対し、それぞれファイルを作成します。

example% csplit -k prog.c '%main(%' '/^}/+1' {20}

環境変数

csplit の実行に影響を与える次の環境変数についての詳細は、environ(7) を参照してください。LANG、LC_ALL、LC_COLLATE、LC_CTYPE、LC_MESSAGES、および NLSPATH。

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

>0

エラーが発生しました。

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
CSI
有効
インタフェースの安定性
確実
標準
standards(7) を参照してください。

関連項目

sed(1), split(1), attributes(7), environ(7), standards(7)

診断

診断メッセージは、次に示すもの以外は、メッセージテキストを 読めば意味がわかるようになっています。

arg - out of range

指定された引数が、現在の位置とファイルの終わりまでの間に存在する行を指してしないことを意味します。