블랙리스트에 있는 특정 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
임시 파일이 필요하지 않습니다.