我有一个异常文件Null pointer exception
Socket exception
Network exception
End of file exception.
,其中包含昨天发生的所有异常行。
示例:
filter.txt
我还有过滤文件End of file exception
Null pointer exception
,其中包含一些例外关键字,例如
newexception.txt
我想通过过滤filter.txt
中提到的那些行来创建一个带有shell脚本的exception.txt
文件。
基本上它应该是filter.txt
的副本,忽略来自{{1}}的行。
最好的方法是什么?
答案 0 :(得分:1)
如果您知道filter.txt上有哪些关键字。最简单也许最快的方法是grep,使用-v选项。
grep -v -e 'keyword1' -e 'keyword2' exception.txt
答案 1 :(得分:0)
您可以从过滤器文件中读取所有行,并从中形成正则表达式:
lines=`cat filter.txt`
regex=${lines//$'\n'/|}
egrep -v "$regex" exception.txt
通过将换行符替换为|
,这会将过滤行展平为一个字符串,因此您的正则表达式看起来像End of file exception|Null pointer exception
。这样,您也可以使用自己形成正则表达式的过滤器关键字,例如so* exception
。
注意这需要bash。