grep的异常,但排除特定的异常(grep Exception but exclude specif

2019-06-24 20:54发布

我目前匹配从一个文件中“异常”,并输出10线前,用后:

的grep -C 10 “[*异常”

但现在我希望排除某些特殊情况例外,说AAAExceptionBBBException,我怎么能这样做呢? 它可以通过完成

grep的-v “AAAException” | 的grep -C 10 “[*异常”

但是,如果在文件中,我从内其他一些异常10号线有AAAException,该行不会被包含在输出中,这不是我想要的。 我怎么能不匹配AAAException,但如果它在10线发生一些其他的例外,它仍然会包含在输出?

Answer 1:

如果你grep -P你可以指定一个负向后断言。

grep -C 10 -P '\[.*(?<!AAA|BBB)Exception' 


Answer 2:

如果您正匹配模式的例外是一个字,即之前没有/其次是其他字母,那么你可以使用单词边界。

$ grep -C 10 '\<NullPointerException\>\|\<SessionTimeoutException\>'


文章来源: grep Exception but exclude specific Exception