grep - 文字列検索やパターンマッチしたファイル検索をする

grepコマンドは、パターンにマッチした前後の行を表示することもできます。
また、前後に表示されるときに区切りとして表示される文字列を変更することや表示させなくすることもできます。

コマンド例の想定

検索するファイルの例として、以下のような「apple」、「onion」、「yuzu」の重複順列でできたテキストファイルを想定します。

itemtext.txt ▼表示

パターンにマッチした行の後ろのn行を表示
(-Aオプション)

-Aオプションはパターンマッチングした行の後ろの行も表示することができます。
何行を表示するかは-Aオプションの後の数字で指定します。
この例では、3を指定したことでパターンマッチした行の後ろ3行分表示しています。

コマンド例

itemtext.txt ▼表示

実行結果

-Aオプションが設定されていても、grepコマンドは表示する行を何度も繰り返しません。

コマンド例

実行結果 ▼表示

パターンにマッチした行の前からn行を表示
(-Bオプション)

-Bオプションはパターンマッチングした行の前の行を表示することができます。
何行を表示するかは-Bオプションの後の数字で指定します。
この例では、3を指定したことでパターンマッチした行の前3行分表示しています。

コマンド例

itemtext.txt ▼表示

実行結果

-Bオプションが設定されていても、-Aオプションと同様にgrepコマンドは表示する行を何度も繰り返しません。

パターンにマッチした行の前後n行を表示
(-Cオプション)

-Cオプションはパターンマッチングした行の前後の行を表示することができます。
何行を表示するかは-Cオプションの後の数字で指定します。
この例では、3を指定したことでパターンマッチした行の前後3行分表示しています。

コマンド例

itemtext.txt ▼表示

実行結果

-Cオプションが設定されていても、-Aオプションと同様にgrepコマンドは表示する行を何度も繰り返しません。

前後に表示した時の行の区切り文字を変更
(--group-separator=string)

--group-separatorオプションは、-A,-B,-Cオプションの時に、パターンマッチした行の前後の表示で使われていた区切り文字を任意の文字列で変更することができます。

コマンド例

itemtext.txt ▼表示

実行結果 ▼表示

前後に表示したときの行の区切り文字を表示しない
(--no-group-separator)

--no-group-separatorオプションは、-A,-B,-Cオプションの時に、パターンマッチした行の前後の表示で使われていた区切り文字を表示しないようにすることができます。

コマンド例

itemtext.txt ▼表示

実行結果 ▼表示

参考

外部リンクGNU grepのマニュアル