我正在尝试从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
在这里,我已登录到广告连播
linux - nslookup和awk获得第二个地址-LMLPHP
然后以这种方式运行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
仔细检查一下,如果您还有其他问题,请告诉我。

10-06 15:41