我試圖在大量 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"