egrep:包含和不包含

egrep:包含和不包含
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

相关内容