1

iptables -L -nIPアドレスの存在を出力して検索するBASHスクリプトを書いています。これをegrepで使用する方法に固執しています。だいたい:

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

これは機能するように「見えます」が、終了区切り文字がないため、次の$ように一致します。

25.24.24425.24.24

私が本当に一致する必要があるの25.24.24

これをエスケープしようと$しましたが、正規表現で問題が発生します。

少なくともこれは、 iptablesシステムでIPを検索するために私が見つけた唯一の手段です。クエリメカニズム自体はないようです(不可解)。

私はおそらくここで非常に単純なものが欠けているので、ポインタが1つか2つ必要です:-)

ありがとう。

4

2 に答える 2

0

をバックスラッシュする必要があります.: これは、正規表現の任意の文字を意味します...

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

(そこは必要egrepありません)

于 2012-11-30T20:16:31.627 に答える
0

$正規表現の最後の は期待どおりに機能します。

the_ip=25.24.24
the_string=$(echo $the_ip | sed 's/\./\\\./g')
iptables -L -n | egrep "$the_string$"
于 2012-11-30T20:20:40.363 に答える