我在文件中有以下IP地址
3.3.3.1
3.3.3.11
3.3.3.111
我正在使用此文件作为另一个程序的输入文件。在该程序中,它将grep
每个IP地址。但当我grep
内容时,我得到了一些错误的输出。
像
cat testfile | grep -o 3.3.3.1
但是我得到了像
这样的输出3.3.3.1
3.3.3.1
3.3.3.1
我只是想得到确切的输出。我怎么能用grep
?
答案 0 :(得分:4)
使用以下命令:
grep -owF "3.3.3.1" tesfile
-o
仅返回匹配而不是整行。-w
greps表示整个单词,这意味着匹配必须包含在非{c} <space>
,<tab>
等单词字符中,,
,;
行的开头或结尾等。它阻止grep将3.3.3.1
与3.3.3.111
匹配。
-F
greps。这可以防止IP地址中的.
被解释为任何字符,这意味着grep
将不匹配3a3b3c1
(或类似的东西)。
答案 1 :(得分:1)
要仅匹配整个单词,请使用grep -ow 3.3.3.1 testfile
更新:使用hek2mgl提供的解决方案,因为它更强大。
答案 2 :(得分:0)
你可以使用anhcors。
grep '^3\.3\.3\.1$' file
因为默认情况下grep使用正则表达式,所以你需要按顺序转义点以使grep与文字点字符匹配。