2011-08-15 9 views
0

私は、ファイルに使用されているこのIPアドレスを持って対処しますの検索と印刷範囲がbashの

192.168.1.121 192.168.1.141 192.168.1.172 192.168.1.180 192.168.1.180 192.168 .1.181 192.168.1.182 192.168.1.185 192.168.1.190私が何をしたいのか

はバッシュで使用するIPアドレス間の範囲をプリントアウトすることができることです。たとえば192.168.1.121の例を見てみると、121と141の間のすべてのIPアドレスを出力できるようになりたいと思います。同様に141と172の間でも同様です。私は121より前にIPアドレスを表示することについて心配していません。

これを行う方法はありますか?

ありがとう クティ。

答えて

0

はい。

addresses=(`< listofnums`) 
network=${addresses[0]%.*} 
hosts=(${addresses[@]##*.}) 

for ((i=${hosts[0]}; i<255; ++i)) 
do 
     case "${hosts[@]}" in *"$i"*) ;; *) echo "$network.$i" ;; esac 
done 
+0

大変ありがとうございました。親切に説明できますか?私はbashのためにちょっと新しいです。 – kuti

+0

ここでは、パラメータ展開( '$ {}'のインスタンス)について説明します: http://www.gnu.org/software/bash/manual/bashref.html#Shell-パラメータ - 拡張 : http://www.gnu.org/software/bash/manual/bashref.html#Conditional-Constructs – paulmelnikow

+0

まさに私が探していたものです。再度、感謝します!。 – kuti