[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

5. ファイルの一部の出力

以下のコマンドは,入力の一部を出力します.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

5.1 head: ファイルの最初の部分を出力

headは,それぞれのfileの最初の部分(デフォルトで十行)出 力します.ファイルが与えられていない場合や,‘-’というfileが 与えられているときは標準入力から読み込みます.概要です.

 
head [option]… [file]…

一つ以上のfileが指定されている場合,headは以下から成り 立つ一行のヘッダを出力します.

 
==> file name <==

それぞれのfileの前に出力されます.

プログラムは以下のオプションを受け入れます.共通のオプションも参照 してください.

-c n
--bytes=n

最初の行の代わりに,最初のnバイトを出力します.後置される ‘b’はnの512倍,‘k’は1024倍,そして‘m’は1048576倍 になります.しかし,nが‘-’で始まる場合,それぞれのファイル の最後のnを出力します.

-n n
--lines=n

最初のn行を出力します.しかし,nが‘-’で開始される場合, それぞれのファイルの最後のnを出力します.

-q
--quiet
--silent

ファイル名のヘッダを出力しません.

-v
--verbose

常にファイル名のヘッダを出力します.

古いシステムでは,headは時代遅れのオプション ‘-countoptions’をサポートし,それは最初に指定されて いる場合だけ認識されます.countは十進数の数値で,オプションで ‘-c’でのサイズ指定文字(‘b’, ‘k’, ‘m’)や,行数を 意味する‘l’,またはそれ以外のオプション文字(‘cqv’)が続きます. POSIX 1003.1-2001 (see section 標準への準拠)ではこれを 許可していません.代わりに‘-c count’や‘-n count’ を使用してください.

終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

5.2 tail: ファイルの最後の部分を出力

tailは,それぞれのfileの最後の部分(デフォルトで十行)出 力します.ファイルが与えられていない場合や,‘-’というfileが 与えられているときは標準入力から読み込みます.概要です.

 
tail [option]… [file]…

一つ以上のfileが指定されている場合,tailは以下から成り 立つ一行のヘッダを出力します.

 
==> file name <==

それぞれのfileの前に出力されます.

GNU tailは,任意の量のデータを出力することが可能です (tailの他のバージョンにはできないものもあります).ファイルを 逆順にすることはファイルの終りを出力する作業とは全く異なるので, ‘-r’オプション(逆順に出力)もありません.BSD tail (‘-r’があるものの一つ)は,最大でそのバッファの大きさまで,通常 32KiBのファイルを逆順にすることが可能なだけです.ファイルを逆順にする より信頼性のある用途が広い方法は,GNU tacコマンドです.

あらゆるオプション引数が,‘+’で始まる数字nの場合, tailはファイルの終りの代わりに,それぞれのファイルの最初から n番目の項目で出力を開始します.

プログラムは以下のオプションを受け入れます.共通のオプションも参照 してください.

-c bytes
--bytes=bytes

最後の行の代わりに,最後のbytesバイトを出力します.後置される ‘b’はbytesの512倍,‘k’は1024倍,そして‘m’は 1048576倍になります.

-f
--follow[=how]

ファイルが増大している可能性があるため,ファイルの終りから,それ以降の 文字を読み込むことを永久に繰り返します.このオプションは,パイプから読 み込まれているとき無視されます.一つ以上のファイルが与えられている場合, 出力されてるファイルを示すため,異なるファイルから出力を得るときはいつ でも,tailがヘッダを出力します.

このオプションでは,ファイルを追跡する方法を指定する方法が二つあります が,その違いは,追跡しているファイルが削除されたり名前を変更されたりし たとき通知可能だということだけです.リンクが無くなった後でも,増え続け るファイルの終りの追跡を続けたい場合は,‘--follow=descriptor’を 使用してください.これはデフォルトの動作ですが,回転(rotate)される(削 除や名前の変更がなされ,再び開かれる)ログファイルを追跡しているときは 不便です.その場合,他のプログラムにより削除され再作成されたかどうかを 周期的に見て,再び開かれる指名されたファイルを追跡するため, ‘--follow=name’を使用してください.

使用している方法にかかわらず,追跡しているファイルが縮まっていると決定 された場合,tailはファイルが切り詰められたことを告げるメッセー ジを出力し,新たに決定された終端からファイルの終りを再追跡しはじめます.

ファイルが削除されたとき,tailの動作は名前で続けるか記述子で 続けるかに依存します.名前で続けるとき,tailはファイルが削除 されたことを検出し,その影響のメッセージを与えることが可能で, ‘--retry’が指定されている場合,ファイルが再び現れたかどうかを見 るため周期的な調査を続けるでしょう.記述子で続けるとき,tail はファイルのリンクが切れたり名前が変更されたことを検出せず,メッセージ を出力しません.ファイルは既に元の名前でアクセスできませんが,まだ増加 しているかもしれません.

オプション値の‘descriptor’と‘name’はオプションの長い形式での み指定でき,‘-f’では指定できません.

-F

このオプションは‘--follow=name --retry’と同じです.すなわち, tailは削除されたときファイルを再び開こうとします.これが失敗 しても,tailは再びアクセス可能になるまで挑戦し続けます.

--retry

このオプションは,名前で続けるときだけ意味があります.このオプションが 無い場合,存在していないまたはアクセスできないファイルにtail が遭遇したとき,それはその事実を報告し再び調査しません.

--sleep-interval=number

繰り返しの間の待ち時間の秒数を変更します(デフォルトは1.0秒).待ってい る間,指定された全てのファイルの大きさが変ったかどうか調査します. tailの歴史的な実装では,numberを整数にする必要がありま した.しかし,GNU tailは(小数部の前にピリオドを使用している) 任意の浮動小数点の数値を受け入れます.

--pid=pid

名前または記述子で続ける場合,全てのfile引数に唯一書き込んでいる プロセスID pidを指定してもかまいません.そして,プロセスが終了し た少し後でtailも終了します.これは書き込んでいるものと tailプロセスが同じマシンで動作している場合のみ正確に動作しま す.例えば,ファイルにビルドの出力を保存したりファイルが大きくなるのを 見たりするためmaketailを以下のように呼び出し,ビ ルドが完了したときtailの処理は終了します.このオプションを用 いない場合,tail -fプロセスを自分で停止する必要があります.

 
$ make >& makerr & tail --pid=$! -f makerr

使用中でない,または,tailされているファイルに書き込んでいる プロセスに対応しないpidを指定した場合,tailはあらゆる fileの増加が終了するよりかなり前に終了したり,実際に書き込んでい るものが終了してしばらくしても終了しないかもしれません.‘--pid’ はシステムによってはサポートできないことに注意してください.その状況で は,tailは警告を出力します.

--max-unchanged-stats=n

名前でファイルをtailしているとき,n(デフォルトで n=5)回連続して大きさ が同じ場合,ファイル名が以前と同じデバイス/inode番号の組に関連している かどうかを決定するため,ファイルに対してopen/fstatを実行 します.回転(rotate)されているログファイルを追跡しているとき,前回に回 転(rotate)した行をtailが出力するときと,新しいログファイルで 蓄積された行を出力するときの間は,おそらく数秒になります.このオプショ ンは,名前で追跡しているときのみ意味があります.

-n n
--lines=n

最後のn行出力します.

-q
--quiet
--silent

ファイル名のヘッダを出力しません.

-v
--verbose

常にファイル名のヘッダを出力します.

古いシステムでは,tailは時代遅れのオプション ‘-countoptions’をサポートし,それは最初に指定されて いる場合だけ認識されます.countは十進数の数値で,オプションで ‘-c’でのサイズ指定文字(‘b’,‘k’,‘m’)や,行数を 意味する‘l’,またはそれ以外のオプション文字(‘cfqv’)が続きま す.古いシステムには,‘-+count’と同じ意味がある時代遅れの オプション‘+count’をサポートしているものもあります. POSIX 1003.1-2001 (see section 標準への準拠)ではこれら を許可していません.代わりに‘-c count’や‘-n count’を使用してください.

終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

5.3 split: ファイルを固定サイズの部分に分割

splitは,input(何も与えられなかったり,inputが ‘-’の場合は標準入力)の連続したセクションを含む出力ファイルを生成 します.概要です.

 
split [option] [input [prefix]]

デフォルトで,splitinputの1000行(または,最後のセク ションでは残り)を,それぞれの出力ファイルに書き込みます.

出力ファイルの名前はprefix (デフォルトは‘x’)にグループ文字 (デフォルトで‘aa’,‘ab’,…)が続くものから成り立ってい て,それで,伝統的なファイル名の順番で出力ファイルをソートし結合したも のが,元の入力ファイルを生成するようになっています.出力ファイル名を使 い切った場合,splitは作成された出力ファイルを削除せずにエラー を報告します.

このプログラムは以下のオプションも受け入れます.共通のオプションも 参照してください.

-a length
--suffix-length=length

長さlengthの接尾子を使用します.デフォルトのlengthは2です.

-l lines
--lines=lines

inputlines行をそれぞれの出力ファイルに書き込みます.

古いシステムでは,splitは時代遅れのオプション ‘-lines’をサポートしています.POSIX 1003.1-2001 (see section 標準への準拠)ではこれを許可していません.代わりに ‘-l lines’を使用してください.

-b bytes
--bytes=bytes

inputの最初のbytesバイトを,それぞれの出力ファイルに書き込 みます.‘b’の後置はbytesの512倍,‘k’は1024倍,そして ‘m’は1048576倍です.

-C bytes
--line-bytes=bytes

bytesバイトを越えないinputの完全な行を,できるだけ多くそれ ぞれの出力ファイルに書き込みます.bytesバイトより長い行に対して は,行のbytesバイトより少ない部分が残るまで,それぞれの出力ファ イルにbytesバイト書き込み,それから通常通りに続けます. bytesは‘--bytes’オプションに対するものと同じ書式です.

-d
--numeric-suffixes

小文字ではなく,数字の接尾子を使用します.

--verbose

それぞれの出力ファイルが開かれる直前に,標準エラー出力に状態を書き込み ます.

終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.


[ < ] [ > ]   [ << ] [] [ >> ]         [冒頭] [目次] [見出し] [ ? ]

5.4 csplit: ファイルを文脈で決定された部分に分割

csplitは,input(inputが‘-’の場合は標準入力) のセクションを含む,ゼロ以上の出力ファイルを作成します.概要です.

 
csplit [option]… input pattern

出力ファイルの内容は,後で詳述するpattern引数で決定されます. pattern引数が入力ファイルに存在しない行を参照する場合,エラーが 発生します(例えば,残っている行が与えられた正規表現にマッチしない場合). 全てのpatternがマッチした後,残りの入力は一つの最後の出力ファイ ルにコピーされます.

デフォルトで,csplitは,それぞれの出力ファイルが作成された後, バイト数をそのファイルに書き込みます.

pattern引数の形式は以下の通りです.

n

n行までの入力を含む出力ファイルを作成しますが,n行は含みま せん.繰り返し数が続く場合,それぞれの繰り返しに対し,入力ファイルの次 のn行を含む出力ファイルも作成します.

/regexp/[offset]

regexpにマッチするものを含む入力ファイルの次の行まで,現在の行 (ただし,マッチは含まれない)を含む出力ファイルを作成します.オプション のoffsetは整数です.与えられた場合,マッチした行までの入力(ただ し,マッチは含まれない)に,offset加えた,または引いた入力まで出 力ファイルに書き出され,その後の行は入力の次の部分になります.

%regexp%[offset]

前の形式に似ていますが,出力ファイルを作成しないので,入力ファイルの部 分は効率的に無視されます.

{repeat-count}

前のパターンをrepeat-count回余分に繰り返します. repeat-countは正の整数,またはアスタリスクになり,それは入力が使 い果たされるのに必要なだけ繰り返すことを意味します.

出力ファイル名は,前置(デフォルトで‘xx’)とそれに続く接尾子から成 り立ちます.デフォルトで接尾子は二桁の十進数で,‘00’から‘99’ まで順番に上昇します.あらゆる状況で,ファイル名の順番でソートされた出 力ファイルを連結すると,元の入力ファイルを生成します.

デフォルトで,csplitがエラーや,ハングアップ,中断,終了,ま たは終端シグナルを検出した場合,それまでに存在する作成されたあらゆる出 力ファイルを削除します.

プログラムは以下のオプションを受け入れます.共通のオプションも参照 してください.

-f prefix
--prefix=prefix

出力ファイルの接尾子として,prefixを使用します.

-b suffix
--suffix=suffix

出力ファイル名の接尾子としてsuffixを使用します.このオプションが 指定されている場合,接尾子の文字列は,一つだけのprintf(3)形式の 変換での指定を含んでいる必要があり,おそらく,書式指定のフラグ,フィー ルドの幅,精密さの指定,またはこれら全ての修飾語を含みます.フォーマッ ト文字は,二進数の整数の引数を可読なものに変換する必要があります.この ため,‘d’,‘i’,‘u’,‘o’,‘x’,そして‘X’ の変換は可能です.完全なsuffixは,それぞれの個別な出力ファイルに 対し,ファイル名の接尾子を順番に形成するため(現在の出力ファイル数とと もに) sprintf(3)に与えられます.このオプションを使用した場合, ‘--digits’オプションは無視されます.

-n digits
--digits=digits

デフォルトの2の代わりにdigits桁の長さの数字を含む出力ファイル名 を使用します.

-k
--keep-files

エラーが検出された場合でも出力ファイルを削除しません.

-z
--elide-empty-files

長さゼロの出力ファイルの生成を抑制します.(入力ファイルのセクションを 分離するものがそれぞれのセクションの最初の行に印を付ける状況では,この オプションを使用しない限り,最初の出力ファイルは,通常長さゼロのファイ ルになります.)出力ファイルの順番は,このオプションが指定されていると きでさえ,0から始まる連続したものになります.

-s
-q
--silent
--quiet

出力ファイルの大きさを出力しません.

終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.


[ << ] [ >> ]           [冒頭] [目次] [見出し] [ ? ]

この文書は新堂 安孝によって2009年9月22日texi2html 1.82を用いて生成されました。