このページの内容

2.1.4 出力行の接頭情報の制御

複数の接頭フィールドを出力する場合、その順序はオプションの指定順にかかわらず、常にファイル名、行番号、バイトオフセットです。

-b
--byte-offset

出力の各行の前に、入力ファイル内での0始まりのバイトオフセットを表示します。-o(--only-matching)を指定した場合は、一致部分自体のオフセットを表示します。

-H
--with-filename

各一致にファイル名を表示します。検索するファイルが複数ある場合、これが既定の動作です。

-h
--no-filename

出力の先頭へのファイル名の付加を抑制します。検索するファイルが1つだけの場合、または標準入力だけを検索する場合、これが既定の動作です。

--label=LABEL

実際には標準入力から読み込む入力を、ファイルLABELからの入力として表示します。検索前にファイル内容を変換するコマンドで役立つことがあります。たとえば、次のように使います。

gzip -cd foo.gz | grep --label=foo -H 'some pattern'
-n
--line-number

出力の各行の先頭に、入力ファイル内での1始まりの行番号を付けます。(-nはPOSIXで定められています。)

-T
--initial-tab

実際の行内容の最初の文字がタブ位置に来るようにし、タブの位置揃えが通常どおりに見えるようにします。実際の内容の前に情報を付ける-H、-n、-bオプションと併用すると役立ちます。1つのファイルからの行がすべて同じ列で始まるよう、出力する行番号やバイトオフセットの前に空白を付けることもあります。

-Z
--null

通常ならファイル名の後ろに付く文字の代わりに、ゼロバイト(ASCII NUL文字)を出力します。たとえば、「grep -lZ」は各ファイル名の後ろに、通常の改行の代わりにゼロバイトを出力します。改行などの特殊な文字を含むファイル名があっても、出力を曖昧さなく解釈できます。このオプションは「find -print0」、「perl -0」、「sort -z」、「xargs -0」などのコマンドと組み合わせ、改行文字を含むものも含めた任意のファイル名を処理できます。