Basta alterar a% finaldone
para done | sort -nr
Isso classificará a saída do loop for
por meio de um canal e não precisará de arquivos temporários.
Eu tenho abaixo do script que recebo detalhes de alguns IPs em uma lista negra.
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
Funciona, mas quero classificar a saída por seção de país.
Agora posso simplesmente ir:
bash check.sh | sort -nr
e funciona bem.
Mas eu quero fazer a classificação antes de enviar o resultado para o terminal. Em outras palavras, a classificação deve ser feita dentro de check.sh
e, em seguida, deve ser enviada para o terminal.
Como posso conseguir isso no script bash?
Tags sort