egrep -i '12-12.*\swarning' log.file | cless
上面的代码将生成两行,其中包含 date 12-12
,后跟随机字符、空格,然后Warning
是更多文本。
2011-12-12 textetc Warning 1234
2011-12-12 textetc Warning 5678
我希望它只返回末尾不包含 1234 的行。我正在使用 GNU grep 2.5.4。
目前,这是我的解决方法。
egrep -i '12-12.*\swarning' log.file > tmp.txt
egrep -i -v '1234' tmp.txt
我尝试过将第一个管道连接到第二个管道(不创建文件),但它要么返回太多,而且都是错误的,要么根本不返回任何内容。
答案1
你必须使用2grep
秒。
grep -i '12-12.*[[:space:]]warning' log.file | grep -v '1234$'
或者,您可以使用一个awk
awk '/12-12.*[[:space:]]warning/ && ! /1234$/' log.file