整个单词的grep表达式

时间:2016-09-13 13:10:04

标签: regex grep

我尝试解析防火墙日志文件,只将不包含路由器地址的行作为源。路由器的地址是明显的192.168.2.1,计算机的地址是192.168.2.110。

如果我写grep -v 192.168.2.1,那么我就不会得到目的地192.168.2.110,因为它以192.168.2.1开头。如果我不使用任何东西,那么我从路由器获取线路,我想过滤掉。我搜索并尝试了不同的正则表达式,但无论我做什么,我要么得到这两个地址,要么都没有。

2 个答案:

答案 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模式才能生效。