QA@IT

grepで前後の行を表示するには?

5307 PV

ヒットした行だけでなく前後の何行かも一緒に表示できますか?

回答

  • grep -B 3とすれば前(Before)の3行を表示
  • grep -A 3とすれば後(After)の3行を表示
  • grep -C 3とすれば前後(Context)の3行を表示

grep -3としても前後の3行を表示します。

例)

one
two
three
four
five
six
seven
eight
:
:

というファイルがあれば、

$ grep -2 five file.txt
three
four
five
six
seven
$ grep -B 2 five file.txt
three
four
five

となります。

参考)

http://linuxjm.sourceforge.jp/html/GNU_grep/man1/grep.1.html

編集 履歴 (1)
  • man に

    `-C NUM, --context=NUM`

    とあるので、contextのc だと思います。
    -
  • ノートは整形されないのか… -
  • ご指摘ありがとうございます。回答を修正しました。ノートはテキストのみでQとAはmarkdownというのは紛らわしいですよね。私も間違えました。どうすれば分かりやすいかなー -
ウォッチ

この質問への回答やコメントをメールでお知らせします。