Egrep 正则表达式来抑制某些行

Egrep 正则表达式来抑制某些行

我尝试使用以下命令来抑制包含字符串“DST=192.168.1”或“DST=192.168.2”的某些输出行

tail /var/log/messages | egrep -v -e 'DST=(192\.168\.1\.1)|DST=(192\.168\.2\.1)'

我的正则表达式不起作用,有人可以提供一个可用的吗?

答案1

grep -v 'DST=192\.168\.[12]\.1'
应该可以解决问题。

甚至不需要 egrep。

- 编辑 -

如果要匹配有更实质性差异的 IP:

grep -v 'DST=\(a\.b\.c\.d\|x\.y\.z\.q\)'

您可以通过添加另一个 \| 后跟下一个 IP 来添加更多 IP。

在这种情况下,您可能实际上想要使用 egrep (或grep -E相同的东西),这样它看起来会更漂亮一些,如下所示:

grep -E -v 'DST=(a\.b\.c\.d|x\.y\.z\.q)'

相关内容