如何从ruby中的文件中获取特定数据?我想从这样的文件设置中获取一些10. ip地址......
Whatever: xathun
ip_address: 10.2.232.6
etc: aouoeu
more: snthuh
我想将ip地址推送到数组中。
我可以从文本中提取10.地址。我希望有一个更准确的方法,只有在'ip_address:'标签之后的数据中,以防万一有不需要的匹配数据。
答案 0 :(得分:1)
s_text = File.open("test.txt",'r').read
ip_addresses = s_text.scan(/\d+.\d+.\d+.\d+/)
puts ip_addresses.inspect #=> ["10.2.232.6"]
答案 1 :(得分:0)
这是一个简单的解决方案。
open('<textfile path>') { |f| puts f.grep(/10\./) }
答案 2 :(得分:0)
如果文件设置如此,您可以这样做:
arr = []
File.open("text").each_line do |line|
parts = line.split(":")
arr << parts[1].strip if parts[0] == "ip_address"
end
答案 3 :(得分:0)
在您经历一次时添加到数组,一次一行:
的 ip_data.txt 强>
Whatever: xathun
ip_address: 10.2.232.6
etc: aouoeu
more: snthuh
Whatever: badone
ip_address: 66.8.103.3
etc: huh
more: noooo
Whatever: blah
ip_address: 10.9.244.13
etc: hello
more: goodbye
<强>码强>
found_tens = []
File.open('ip_data.txt') {|f|
f.each {|line|
line = line.chomp
next if line.empty?
found_tens << $1 if line =~ /^ip_address:\s+(10\.\d+\.\d+\.\d+)/
}
}
p found_tens #["10.2.232.6", "10.9.244.13"]