我有一个输出此信息的临时文件
1.2.3.4 34
1.2.3.5 23
1.2.3.6 22
第一列是ip地址,第二列是与数据库同时连接,我需要输出第一列不是作为IP地址而是作为hostame,并保留第二列的信息
期望的输出
hostname1 34
hostname2 23
hostname3 22
提前感谢...
答案 0 :(得分:2)
这样的事情可能是:
#!/bin/bash
while read ip n
do
# Uncomment following to use /etc/hosts
# name=$(awk -v ip=$ip '$1 ~ ip{print $2}' /etc/hosts)
# Uncomment following to use nslookup
# name=$(nslookup $ip| grep "name ="|sed 's/.*=//')
# Uncomment following line to use dig (thanks to Charles Duffy)
# name=$(dig +short -x $ip)
echo $name $n
done < file
答案 1 :(得分:0)
不完全确定你想要达到的目标,但这确实会得到“所需的输出”
awk 'BEGIN {x = 1} {printf "hostname%s %s\n", x, $2; x += 1}' tempfile
答案 2 :(得分:0)
来自logresolve
的{{1}}怎么样?它会检测看起来像IP地址的内容,并将其替换为已解析的主机名:
apache2-utils