Grep特定的IP地址

时间:2011-12-21 14:57:33

标签: regex grep

我有一个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" afileafile的第一行和第二行都匹配,这不是我想要的。

我知道有很多正则表达式会匹配任何IP地址,但我不知道任何与特定IP地址匹配的正则表达式。

对此有任何帮助表示赞赏。

如果IP地址不在行尾?该怎么办?例如,如果在我的示例文件中交换了第二列和第三列,该怎么办?

4 个答案:

答案 0 :(得分:7)

您需要在正则表达式的末尾添加$,以使其与行尾相匹配。我还建议转义点,因为正则表达式中的.表示“匹配任何字符”。所以你的正则表达式会变成:

grep "192\.168\.1\.1$" afile

答案 1 :(得分:1)

您希望匹配最后一行之后的行尾。试试这个:

grep "192.168.1.1$"

答案 2 :(得分:1)

grepg/re/p的缩写版,其中“re”是正则表达式。在RegEx中,句号表示“任何字符”。为了使它成为一个字面时期,用反斜杠来逃避它。

grep "192\.168\.1\.1$" afile

正如其他人所说,你也需要说它结束了这条线。

答案 3 :(得分:0)

这就是您想要的:

grep "192.168.1.1\s" afile