我想解析/etc/resolv.conf
文件并获取ip地址的输出。我的档案是:
cat /etc/resolv.conf
# puppet managed
search eb.com eb.io.com
nameserver 10.1.21.1
nameserver 10.1.9.5
nameserver 10.1.2.29
nameserver 10.1.5.28
它将输出显示为:
nameserver 10.1.21.1
nameserver 10.1.9.5
nameserver 10.1.2.29
nameserver 10.1.5.28
但我只需要一行中的IP地址。
10.1.21.1 10.1.9.5 10.1.2.29 10.1.5.28
我可以请别人帮助我吗?
答案 0 :(得分:0)
这段简单的代码应该适合你。
对于文件中的每一行,我们检查是否存在“nameserver”一词后跟一个ip地址。
如果确实如此,我们将该IP地址存储到一个数组中,最后我们打印出由空格连接的所有地址。
ip_addresses = []
File.readlines('/etc/resolv.conf').each do |line|
match = line.match(/nameserver\W+(\d+\.\d+\.\d+\.\d+)/)
next unless match
ip_addresses << match[1]
end
puts ip_addresses.join ' '