tomcat 服务器的 catalina.out 文件中有几个异常消息,例如 -
java.lang.NullPointerException
org.springframework.beans.factory.BeanCreationException
java.lang.RuntimeException
java.io.FileNotFoundException
我们希望 grep 除“java.io.FileNotFoundException”字符串之外的所有异常错误消息。尝试使用以下命令,但不起作用。
cat catalina.out | grep '.*(?<\!=java.io.FileNotFound)Exception\*.)'
您能帮忙找出正确的命令吗?
答案1
尝试多阶段 grep:cat <file> | grep Exception | grep -v java.io.FileNotFoundException
答案2
您可以按照@John在另一个答案中所建议的那样连接多个grep语句,或者例如使用awk
awk'/Exception/&&!/java.io.FileNotFoundException/'catalina.out
在你的样本上这将产生
$ awk '/Exception/ && !/java.io.FileNotFoundException/' catalina.out
java.lang.NullPointerException
org.springframework.beans.factory.BeanCreationException
java.lang.RuntimeException
这基本上说;匹配一切有 Exception
细绳;和 不是 java.io.FileNotFoundException