我目前正在从文件中匹配“Exception”,并在使用之前和之后输出10行:
grep -C 10“[。*例外”
但现在我希望排除某些特定的例外情况,例如 AAAException 和 BBBException ,我该怎么办?它?它可以通过
完成grep -v“AAAException”| grep -C 10“[。*例外”
但是如果在文件中,我在其他一些Exception的10行内有 AAAException ,那么该行不会包含在输出中,这不是我想要的。我怎么能不匹配 AAAException ,但如果它出现在其他异常的10行内,它仍将包含在输出中?
答案 0 :(得分:5)
如果你有grep -P
,你可以指定一个负面的后观断言。
grep -C 10 -P '\[.*(?<!AAA|BBB)Exception'
答案 1 :(得分:0)
如果您的肯定匹配模式异常是一个单词,即不在其他字母之前/后面,那么您可以使用单词边界。
$ grep -C 10 '\<NullPointerException\>\|\<SessionTimeoutException\>'