【发布时间】:2014-10-06 07:08:00
【问题描述】:
需要使用已知主机名 grep /etc/hosts,然后从 /etc/hosts 中捕获主机名的 IP 地址。
我不是程序员,也不知道该怎么做。我对正则表达式的经验非常有限,但认为这可能会起作用。我没有使用 DNS,只是使用 /etc/hosts 文件进行管理。
我需要使用已知主机名对 /etc/hosts 文件进行 grep,然后捕获主机条目的 IP 地址。主机文件是标准格式:
请帮忙!
更新:
#维护网
192.168.80.192 testsrv01-maint
192.168.80.193 testsrv02-maint
192.168.80.194 testsrv03-maint
#熄灯网络
192.168.120.192 testsrv01-ilo
192.168.120.193 testsrv02-ilo
192.168.120.194 testsrv03-ilo
#主数据网络
192.168.150.192 testsrv01-pri
192.168.150.193 testsrv02-pri
192.168.150.194 testsrv03-pri
#二级数据网络
192.168.200.192 testsrv01-sec
192.168.200.193 testsrv02-sec
192.168.200.194 testsrv03-sec
我需要能够将每台机器的 IP 地址和完整主机名条目捕获到我可以使用的变量中。例如,运行文件以匹配“testsrv01*”,并捕获该搜索的所有 IP 地址和名称。然后同样适用于“ testsrv02* ”,依此类推。
【问题讨论】:
-
前两个响应似乎效果很好。我忘了提到有些机器在 /etc/hosts 文件中有多个条目。我需要使用 IP ADDRESS 字段和 HOSTNAME 字段来捕获每个条目。例如:192.168.0.1 example1.domain 192.168.0.2 example1.another.domain 192.168.100.1 example2.domain 192.168.150.5 example2.another.domain
-
在这种情况下,请使用示例
/etc/hosts文件更新您的问题,并更准确地了解您想要的场景输出 (a) 一个匹配 IP 的主机名和 (b) 超过一个匹配的 IP。
标签: regex linux bash dns hosts