Bash 用于在管道传输到 while 循环之前对输入文件进行排序的脚本

Bash script to sort input file before piping to while loop

我有这个 bash 脚本:

while IFS='"' read -r a ip c
do
    echo "ip: $ip"
    whois "$ip" | grep netname
done < <(head -10 file.log)

如何在获取前十行并将其移交给 while 循环之前对 file.log 文件进行排序(例如使用 sort -n -r)?

使用这个命令,

sort -nr file.log | head -10

如果你想得到排序后的前10行,只需sort它再使用head:

while IFS='"' read -r a ip c
do
    echo "ip: $ip"
    whois "$ip" | grep netname
done < <(sort file.log | head -10)
         ^^^^^^^^^^^^^^^

当然,应用您需要的 sort 标志。