3861

文字列を表示したいのですがgrep、一致した行だけでなく、前の 5 行と次の 5 行も表示します。どうすればこれを行うことができますか?

4

14 に答える 14

5116

BSDまたはGNU の場合、一致前の行数と一致後の行数を設定するためにgrep使用できます。-B num-A num

grep -B 3 -A 2 foo README.txt

前後に同じ行数が必要な場合は、 を使用できます-C num

grep -C 3 foo README.txt

これにより、前後 3 行が表示されます。

于 2008-08-12T17:57:43.307 に答える
634

-Aそして-B-C nn文脈の行の場合)または単に-nn文脈の行の場合... nが1から9である限り)機能します。

于 2008-08-12T17:59:56.080 に答える
80

ackは grep と同様の引数で動作し、-C. ただし、通常はコードを検索する方が適しています。

于 2008-09-07T11:13:11.773 に答える
42
grep astring myfile -A 5 -B 5

「astring」の「myfile」をgrepし、各一致の前後に5行を表示します

于 2008-08-12T17:58:00.153 に答える
21

私は通常使用します

grep searchstring file -C n # n for number of lines of context up and down

grep などのツールの多くには、非常に優れた man ファイルもあります。grepでできることはたくさんあるので、grep の man ページをよく参照しています。

man grep

多くの GNU ツールには、man ページに加えて、より有用な情報を含む情報ページもあります。

info grep
于 2008-08-12T18:42:49.080 に答える
16

grep を使用する

$ grep --help | grep -i context
Context control:
  -B, --before-context=NUM  print NUM lines of leading context
  -A, --after-context=NUM   print NUM lines of trailing context
  -C, --context=NUM         print NUM lines of output context
  -NUM                      same as --context=NUM
于 2018-01-12T11:25:38.453 に答える