如何将另一列添加到 bash 脚本输出?

How to add another column to a bash script output?

在 bash 脚本中,IP 地址列表按出现次数排序:

  | sort | uniq -c | sort -rn 

现在您有 2 列,例如

120 188.12.91.63
 85 112.12.91.76
 83 104.100.42.98
 36 200.187.165.142
 30 200.187.165.161

问题:我想要一个 3 列的输出。例如第三列是第二列的一些功能(例如,该功能可以是 nslookup 的一些过滤输出)。如何添加第三列?可以在管道中完成还是应该将以上两列导出到变量?那怎么办?我是新手,谢谢!

你可以这样做:

echo "120 188.12.91.63
 85 112.12.91.76
 83 104.100.42.98
 36 200.187.165.142
 30 200.187.165.161" |  while IFS=" " read -r count ip; do
   name=$(nslookup "$ip" | awk -v ip="$ip" '/name/{print substr($NF,1,length($NF)-1)}')
   echo $count $ip $name
done

您可能希望将初始回显替换为您用于获取 IP 地址列表的命令。