2012-11-30 69 views
1

我正在編寫一個BASH腳本,輸出iptables -L -n並搜索IP地址的存在。我堅持如何使用egrep。大致爲:使用egrep從shell變量中按八位字節搜索IP地址

CHECK=$(iptables -L -n | egrep $the_string) 

這「看起來」像它會工作,但它並沒有結束分隔符$所以它會匹配:

25.24.24425.24.24

當我真的只是只需匹配25.24.24

我試圖逃避這一點,但$創建正則表達式的問題。

至少這是我發現在iptables系統中搜索IP的唯一方法。它似乎沒有任何查詢機制(令人費解)。

我可能失去了一些東西很簡單的在這裏,並且只需要一個指針或兩個:-)

感謝。

回答

0

你應該反斜槓.:這意味着任何字符在正則表達式...

iptables -L -n | grep "25\.24\.24$" 

(無需egrep有)

0

$在正則表達式工作結束如預期的那樣:

the_ip=25.24.24 
the_string=$(echo $the_ip | sed 's/\./\\\./g') 
iptables -L -n | egrep "$the_string$" 
相關問題