我有一个IP地址,比如192.168.1.1
,我想要匹配。
我有一个名为afile
的文件,看起来像这样
item1, item2, 192.168.1.1
item3, item4, 192.168.1.10
item5, item6, 192.168.2.1
如果grep "192.168.1.1" afile
我afile
的第一行和第二行都匹配,这不是我想要的。
我知道有很多正则表达式会匹配任何IP地址,但我不知道任何与特定IP地址匹配的正则表达式。
对此有任何帮助表示赞赏。
如果IP地址不在行尾?该怎么办?例如,如果在我的示例文件中交换了第二列和第三列,该怎么办?
答案 0 :(得分:7)
您需要在正则表达式的末尾添加$
,以使其与行尾相匹配。我还建议转义点,因为正则表达式中的.
表示“匹配任何字符”。所以你的正则表达式会变成:
grep "192\.168\.1\.1$" afile
答案 1 :(得分:1)
您希望匹配最后一行之后的行尾。试试这个:
grep "192.168.1.1$"
答案 2 :(得分:1)
grep
是g/re/p
的缩写版,其中“re”是正则表达式。在RegEx中,句号表示“任何字符”。为了使它成为一个字面时期,用反斜杠来逃避它。
grep "192\.168\.1\.1$" afile
正如其他人所说,你也需要说它结束了这条线。
答案 3 :(得分:0)
这就是您想要的:
grep "192.168.1.1\s" afile