端末に送信する前に出力を並べ替える

端末に送信する前に出力を並べ替える

ブラックリストにある特定の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ファイルは必要ありません。

おすすめ記事