我正在尝试从nslookup
的以下结果中获取地址
我想得到的是10.0.45.45
的第二个地址
Server: 10.152.183.10
Address: 10.152.183.10#53
Name: pg-master-0.pg-master-headless.postgres.svc.cluster.local
Address: 10.1.45.45
这是我的代码MASTER_HOST=$(nslookup pg-master-0.pg-master-headlesss | awk '/^Address:/ {A=$2}; END {print A}');
echo $MASTER_HOST
不幸的是,我的输出是:10.152.183.10#53
在这里,我已登录到广告连播然后以这种方式运行nslookup。
最佳答案
如果要从nslookup
输出中选择第二个“地址:”,则只需执行以下操作:
awk '/^Address/{n++; if (n==2){print $2; exit}}'
它检查行是否以Address
开头,然后递增计数器n++
,当n == 2
时,它输出第二个字段并退出。示例使用/输出
将数据保存在名为nslookup.txt的文件中,您将收到以下信息:
$ awk '/^Address/{n++; if (n==2){print $2; exit}}' nslookup.txt
10.1.45.45
当然,使用nslookup
只需将输出传递到awk
即可。例如,如果我想要本地子网上的计算机valkyrie的IP,则可以使用:$ nslookup valkyrie | awk '/^Address/{n++; if (n==2){print $2; exit}}'
192.168.6.135
仔细检查一下,如果您还有其他问题,请告诉我。