我有这个命令,它可以很好地为我提供 IP 地址、MAC 地址和 Mac 供应商的列表
sudo nmap -sn 192.168.0.0/24 | awk '/Nmap scan report for/{printf $5;}/MAC Address:/{print " "substr($0, index($0,$3)) }' | sort
我要做的就是在三个字段之间添加一个逗号作为分隔符,并按 IP 地址的最后一个八位字节对 IP 地址列进行排序。通过更改以下命令,我可以在第一列和第二列之间添加一个逗号,并可以按 IP 地址排序。现在我只需要在 第二列和第三列之间添加一个逗号。如何添加最后一个逗号?
sudo nmap -sn 192.168.0.0/24 | awk '/Nmap scan report for/{printf $5;}/MAC Address:/{print ","substr($0, index($0,$3)) }' | sort -t . -k 4,4n
答案1
我认为您正在寻找 awk 的“OFS”设置(我认为是输出字段分隔符)。
echo "one two three" | awk '{ OFS=", "; print $1,$2,$3}'
one, two, three
此外,您的问题更适合 PowerUser 或其他 Stack Exchange 网站。