0

我正在使用带有如下文本文件的 .ERB 模板(用于 puppet):

ec2-23-22-59-32, mongoc, i-b8b44, instnum=0, Running
ec2-54-27-11-46, mongod, i-43f9f, instnum=1, Running
...
...
ec2-78-62-92-20, mongod, i-02fa4, instnum=8, Running
ec2-24-47-51-23, mongos, i-546c4, instnum=9, Running

我正试图从中得到一个这样的数组:

['mongoc-i-b8b44', 'mongod-i-43f9f', .... 'mongod-i-02fa4', 'mongos-i-546c4']

我可以做一些事情,比如创建一个只包含第二个和第三个元素的数组:

a_type = []
IO.foreach(inFile) do |line|
  a_type.push line.split(',')[1..2].map(&:strip)
end
a_type.join(',')
# => mongoc,i-b5b406dd,mongod,i-b6f9f1d5

或像这样加入所有数组元素:

ar = ['sd', 'ser', 'wer']
ar.map! { |k| "#{k}" }.join('-')
# => "sd-ser-wer"

但无法弄清楚如何达到我正在寻找的结果。任何帮助/指针?

4

1 回答 1

3
File.read(inFile).each_line.map do |line|
  line.split(', ')[1..2].join('-')
end
于 2013-07-16T14:12:43.180 回答