在 awk 脚本中读取 shell 命令的输出

bry*_*yan 4 shell awk

我有一个包含 IP 地址列表和其他信息的文本文件。

我正在使用 awk 脚本来处理此列表并输出各种计算。我想dig -x从 awk 脚本内部调用并使用返回的值。

我试过了

hostname = system("dig +short -x" ip_address);
Run Code Online (Sandbox Code Playgroud)

但发生的事情是——

  1. 调用 dig 将一行打印到 shell

  2. 主机名保持为空

bry*_*yan 11

想通了,但请随时添加更好的答案

cmd = "dig +short -x " ;
cmd ip_address | getline hostname;
close(cmd)
Run Code Online (Sandbox Code Playgroud)

然后我可以在脚本中的任何地方使用主机名。