如何使用shell脚本从第二列中选择一个值?

Bri*_*kes 3 bash shell scripting awk

如果我有一个文本文件:

MachineName    IPAddress
Computer1234   10.0.1.1
Computer1235   10.0.1.2
Computer1236   10.0.1.3
Run Code Online (Sandbox Code Playgroud)

从计算机上获取 MachineName 后,如何从上面的文本中获取相应的 IP 地址?

(bash?) 脚本将在 Mac 上运行,上面的文本可以重新格式化和/或插入脚本本身(大约 110 台计算机)...

Jen*_*ens 5

这就是 awk 的用途:按模式搜索字段,然后执行一些操作。基本思想是

awk '/pattern/ {action}' file
Run Code Online (Sandbox Code Playgroud)

在你的情况下,这将是

awk '/Computer1234/ { print $2 }' file
Run Code Online (Sandbox Code Playgroud)

事实上,你可以更具体,使用一般的 awk 用例

awk 'condition { action }' file
Run Code Online (Sandbox Code Playgroud)

和

awk '$1 == "Computer1234" { print $2 }' file
Run Code Online (Sandbox Code Playgroud)

另一方面,将主机名转换为 IP 地址是名称服务器的作用。如果这不仅仅是玩弄并且需要扩展,您应该将该数据插入到名称服务器的区域文件中,然后使用名称服务访问工具dig来查询与主机名关联的地址。