linux - nslookup和awk获得第二个地址

标签 linux kubernetes awk nslookup

我正在尝试从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
在这里,我已登录到广告连播
enter image description here
然后以这种方式运行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
仔细检查一下,如果您还有其他问题,请告诉我。

关于linux - nslookup和awk获得第二个地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63237467/

相关文章:

c - 创建线程时,有些线程的线程 ID 为 0

linux - 如何在 BASH 中使用 AWK 和 fprint 解析文本文件?

bash - 给定一个 logfile.txt,我只想提取 java 脚本名称;例如使用 bash 脚本的 filename.js

linux - ft-models.out makefile 错误

linux - python将shell的输入截断为特定数字

linux - 用于在日常基础知识中查找 kubernetes 中新添加的 pod 的 Shell 脚本

docker - 如何为 Rancher Desktop 设置代理凭据

docker - 无法访问kubernetes集群中的嵌入式ActiveMq

autocomplete - 我可以在 zsh 中使用 kubectl 自动补全功能吗?

linux - 在一行中调用多行 (G)AWK 程序