2.1.5 文脈行の制御
文脈行とは、一致行の近くにある一致しない行です。以下のいずれかのオプションを使った場合だけ出力します。これらのオプションの設定にかかわらず、grepが同じ行を複数回出力することはありません。-o(--only-matching)オプションを指定した場合、これらのオプションは効果がなく、使用すると警告が出ます。
- -A num
- --after-context=num
一致行の後ろにあるnum行の文脈を表示します。
- -B num
- --before-context=num
一致行の前にあるnum行の文脈を表示します。
- -C num
- -num
- --context=num
一致行の前後にあるnum行ずつの文脈を表示します。
- --group-separator=string
-A、-B、-Cを使う場合、行のグループ間に「--」の代わりにstringを表示します。
- --no-group-separator
-A、-B、-Cを使う場合、行のグループ間に区切りを表示しません。
接頭フィールドと行内容の間に表示する区切りを、grepがどのように選ぶかについて、次の点に注意してください。
- 一致行では通常、接頭フィールドと実際の行内容の間の区切りとして「:」を使います。
- 文脈行、つまり一致しない行では、代わりに「-」を使います。
- 文脈を指定しない場合、一致行を続けてそのまま出力します。
- 文脈を指定した場合、入力で隣接する行はグループとなり、続けて出力します。一方、既定では、隣接しないグループの間に区切りが表示されます。
- 既定の区切りは「--」だけを含む行です。上記のオプションで、区切りの有無や表示内容を変更できます。
- 一致行同士が十分近く、隣り合う2つのグループがつながって1つの連続したグループへ統合できる場合、各グループには複数の一致行が含まれることがあります。