读取文本文件,解析它并将其存储到哈希中

时间:2018-02-15 20:23:19

标签: ruby

我想打开一个文本文件名test.txt并转为hash,其条件值仅为1111

Instance Id:xxxxx, value: 123
Instance Id:xxxxx, value: 1111
Instance Id:xxxxx, value: 1111

任何人都可以帮助我。

这是我的示例代码:

File.open('test.txt').each_line do |line|
 puts line if line.match(/1111/)
end

1 个答案:

答案 0 :(得分:1)

# define a array in the outside scope so you can access it
array = []

# run your loop that reads the file
File.open('test.txt').each_line do |line|
  # split lines into two parts, instance_id - value pairs
  instance_id, value = line.split(',')
  # only add to array if the value is the one you're looking for
  # also, split instance_id to only get the value of the ID
  array << instance_id.split(':')[1] if value.match(/1111/)
end

puts array
# => ["xxxxx", "xxxxx"]

编辑:更新了建议以更好地适应评论中的更新请求

另外值得注意的是,将值设置为哈希是没有意义的,因为对于相同的值,您将拥有不同的ID,您可能希望将其放在数组中。