我尝试解析防火墙日志文件,只将不包含路由器地址的行作为源。路由器的地址是明显的192.168.2.1,计算机的地址是192.168.2.110。
如果我写grep -v 192.168.2.1
,那么我就不会得到目的地192.168.2.110,因为它以192.168.2.1开头。如果我不使用任何东西,那么我从路由器获取线路,我想过滤掉。我搜索并尝试了不同的正则表达式,但无论我做什么,我要么得到这两个地址,要么都没有。
答案 0 :(得分:1)
此强制PATTERN仅匹配整个单词grep -w
。
grep -v -w 192.168.2.1 file
192.168.2.110
或使用\<pattern\>
grep -v '\<192.168.2.1\>' file
192.168.2.110
答案 1 :(得分:0)
您可以尝试使用与字边界匹配的\b
:
grep -vP '\b192.168.2.1\b'
或更好
grep -vP '\b192\.168\.2\.1\b'
您需要-P
模式才能生效。