190

特定のテキストを検索する方法が必要です。そのために、私は使用します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

それを行う方法はありますか?

4

4 に答える 4

330

-Bとを使用して-A、試合の前後に行を出力できます。

grep -i -B 10 'error' data

一致する行自体を含む、一致する前の 10 行を出力します。

于 2012-09-16T06:16:52.310 に答える
11

これを行う方法は、マニュアルページの上部にあります

grep -i -A 10 'error data'
于 2012-09-16T06:17:26.170 に答える
8

これを試して:

grep -i -A 10 "my_regex"

-A 10 は、「my_regex」に一致した後に 10 行を出力することを意味します

于 2012-09-16T06:17:24.870 に答える