5

私は現在、ファイルから「例外」を照合しており、使用前後に10行を出力しています。

grep -C 10 "[.*Exception"

しかし、特定の例外、たとえばAAAExceptionBBBExceptionを除外したいのですが、どうすればよいでしょうか? それは経由で行うことができます

grep -v "AAAException" | grep -C 10 "[.*Exception"

しかし、ファイル内で、他の例外から 10 行以内にAAAExceptionがある場合、その行は出力に含まれません。これは私が望むものではありません。AAAExceptionと一致しないようにするにはどうすればよいですか?ただし、他の例外から 10 行以内に発生した場合でも、出力に含まれますか?

4

2 に答える 2

5

持っているgrep -P場合は、否定の後読みアサーションを指定できます。

grep -C 10 -P '\[.*(?<!AAA|BBB)Exception' 
于 2012-05-28T07:49:25.577 に答える
0

正の一致パターンの例外が単語である場合、つまり他のアルファベットの前後にない場合は、単語境界を使用できます。

$ grep -C 10 '\<NullPointerException\>\|\<SessionTimeoutException\>'
于 2012-05-28T06:40:22.070 に答える