![Egrep 正则表达式来抑制某些行](https://linux22.com/image/526699/Egrep%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%9D%A5%E6%8A%91%E5%88%B6%E6%9F%90%E4%BA%9B%E8%A1%8C.png)
我尝试使用以下命令来抑制包含字符串“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)'