我想打开一个文本文件名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
答案 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,您可能希望将其放在数组中。