连接选择性数组元素后创建数组

时间:2013-07-16 14:08:06

标签: ruby erb

我正在研究.ERB模板(用于木偶),文本文件如下:

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']

我可以做一些事情,比如创建一个只占第2和第3个元素的数组:

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"

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

1 个答案:

答案 0 :(得分:3)

File.read(inFile).each_line.map do |line|
  line.split(', ')[1..2].join('-')
end