Corredor

ウェブ、プログラミングの勉強メモ。

Grep の時、前後の行を一緒に出力する方法

という記事を書こうと思っていたら、つい数日前に「小粋空間」さんでドンピシャな記事を書かれていた。

ほぼ引用みたいになるけど書いておく。

Linux の Grep コマンドのオプションに -B-A-C というものがあり、これらで設定可能。ちなみにこれらのオプションは GitBash や Msys、Cygwin などでも使えるので、Windows 環境でも利用可能。

# マッチした行の手前3行を一緒に出力する
grep -B 3 SomeText *.txt

# マッチした行の後ろ3行を一緒に出力する
grep -A 3 SomeText *.txt

# マッチした行の前後3行ずつを一緒に出力する
grep -C 3 SomeText *.txt

# マッチした行の手前2行・後ろ4行を一緒に出力する
grep -B 2 -A 4 SomeText *.txt

それぞれのオプションを省略しないで書くには以下のとおり。

  • -B (数字) = --before-context=(数字)
  • -A (数字) = --after-context=(数字)
  • -C (数字) = --context=(数字)