我有一个输出此信息的临时文件
1.2.3.4 34
1.2.3.5 23
1.2.3.6 22
第一列是 ip 地址,第二列是与数据库的 simultaneos 连接,我需要输出第一列不是 IP 地址而是主机名,并保留第二列的信息
期望的输出
hostname1 34
hostname2 23
hostname3 22
提前致谢...
可能是这样的:
#!/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
不完全确定您想要实现什么,但这实际上会获得“所需的输出”
awk 'BEGIN {x = 1} {printf "hostname%s %s\n", x, $2; x += 1}' tempfile
logresolve
从怎么样apache2-utils
?它检测看起来像 IP 地址的内容并将其替换为解析的主机名:
$ cat tempfile
1.2.3.4 34
1.2.3.5 23
1.2.3.6 22
$ cat tempfile | logresolve
hostname1 34
hostname2 23
hostname3 22