我试图在大量 IP 地址列表中搜索特定 IP,但由于空格而出现误报。请考虑以下示例:
$ a="192.168.1.1 192.168.1.2"
$ ip="1.1.192.168"
$ echo $a | grep "$ip"
192.168.1.1 192.168.1.2
Grep 会忽略空格并返回错误结果。如何让 grep 识别“1.1 192.168”不等于“1.1.192.168”?
答案1
习惯引用变量。之后您找不到匹配项
echo "$a" | grep "$ip"
这不是一个通用的解决方案,下次 IP 之间可能只有一个空格。使用
ip="1[.]1[.]192[.]168"
还是有问题,你可能会匹配101.1.192.168
。
所以尝试 -Fw 选项
IEecho "$a" | grep -Fw "$ip"