Grep 忽略空格

Grep 忽略空格

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

相關內容