1. ホーム
  2. bash

[解決済み] bash で grep の結果の前後の行を取得するにはどうしたらいいですか?

2022-04-13 12:35:13

質問

与えられたテキストを検索する方法が欲しい。そのために、私は grep :

grep -i "my_regex"

うまくいきましたね。しかし、このようなデータがあると

This is the test data
This is the error data as follows
. . . 
. . . .
. . . . . . 
. . . . . . . . .
Error data ends

という言葉を見つけると error (を使用 grep -i error data に続く10行を探したい。 error . だから、私の出力は次のようになるはずだ。

. . . 
. . . .
. . . . . . 
. . . . . . . . .
Error data ends

何かいい方法はないでしょうか?

どのように解決するのですか?

を使用することができます。 -B-A で、マッチの前後の行を表示します。

grep -i -B 10 'error' data

マッチした行を含む、マッチする前の10行を表示します。