我有这个文本文件TopIP.txt: (小说IP和主机名)
Top destination for Source IP 1.2.3.4
34322 2.3.4.5
455 2.3.4.6
我想在行尾添加主机名到每个IP。我的愿望是:
Top destination for Source IP 1.2.3.4 hostname3.com
34322 2.3.4.5 hostname1.com
455 2.3.4.6 hostname2.com
我上周发生了这件事但没有保存,现在我无法复制它。
我的代码开始类似于此:
cat TopIP.txt | awk '{print $0, system("host " $NF)}'
答案 0 :(得分:3)
我坚持使用bash:
while IFS= read -r line; do
set -- $line
echo "$line $(host ${!#})"
done < TopIP.txt > newfile
答案 1 :(得分:1)
您也可以轻松地使用sed:
sed -i "0,/IP/s/$/ `hostname -f`/" filename
这只是将当前的完全限定主机名(hostname.domain.tld)添加到包含IP的行的末尾。在使用之前,您需要检查网络配置,以确保hostname -f
或host ${!#}
返回正确的主机名。网络配置问题导致无效的主机名返回的情况并不少见。