2011-09-11 8 views
12

grepコマンドは本当に強力で、私はそれをたくさん使っています。grepのようなコマンドと一致する行と隣接する行を見つける

いつか私はgrepのは、私はかろうじてオプション、-r(再帰的)とも(ケースを無視する)-iで自分自身を助けることを覚えて文字列を検索するために内部に多くの多くのファイルを探していると、何かを見つける必要があります - v(除外)。

しかし私が実際に必要とするのは、一致する行に加えて近傍行を表示するgrepの特別な出力を持つことです(前の2行を参照してください)。その後の2行)。

bashを使用してこの結果を得る方法はありますか?

grep --context=3 foo myfile.txt 
+0

サイドノートでは、どのオペレーティングシステムを実行していますか?たとえば、Solaris 10には非常に制限されたgrepがありますが、そうすることはできません。 – chotchki

答えて

11

ほとんどgrepするが、それは少し読みやすく、 "コンテキスト" フラグを許可行いますは、

に等しい
grep -C 2 foo myfile.txt 
+0

偉大な、それは最初の答えよりもはっきりしていた。それはまさに私が探していたものです。 @Gringo Suave、これはあなたの-Cオプションの非契約形式です。 – ztank1013

17

Grep自体はこの

grep -A 2 -B 2 foo myfile.txt 
+2

'-A 2 -B 2'を意味する' -C 2'を忘れないでください。 –

+0

それはとてもうまく働いた、ありがとう! -Cも! – ztank1013

7

あなたは-C

grep -2 foo myfile.txt 

を省略することができます。

関連する問題