
ブラックリストにある特定のIPの詳細を取得するための次のスクリプトがあります。
check.sh
blacklist_ips='
5.56.148.140
94.73.159.66
113.171.224.169
107.150.42.226
195.159.233.44
89.19.7.58
'
for ipx in $blacklist_ips
do
country=`whois $ipx | grep -i country | tail -1 | awk '{print $2}'`
hostx=`host $ipx |awk '{print $NF}'|sed "s/\.$//"`
printf '%s %s %s' $country $ipx $hostx
printf '\n'
done
うまくいきますが、出力を国別にソートしたいです。
これで、単に次に進むことができます。
bash check.sh | sort -nr
うまくいきます。
しかし、結果を端末に送信する前にソートしたいと思います。すなわち、内部的に整列をcheck.sh
行った後、端末に送らなければならない。
Bashスクリプトでこれをどのように達成できますか?
答え1
最終をdone
次に変更します。done | sort -nr
これはパイプを介してループの出力をソートし、一時for
ファイルは必要ありません。