Ruby 操纵数组:向重复元素添加引用数

Ruby 操纵数组:向重复元素添加引用数,ruby,erb,Ruby,Erb,(欢迎您将标题更改为更合适的名称!) 我还有一个Ruby/ERB问题。我有这个档案: ec2-23-22-59-32, mongoc, i-b8b44, instnum=1, Running ec2-54-27-11-46, mongod, i-43f9f, instnum=2, Running ec2-78-62-192-20, mongod, i-02fa4, instnum=3, Running ec2-24-47-51-23, mongos, i-546c4, instnum=4, Ru

(欢迎您将标题更改为更合适的名称!)

我还有一个Ruby/ERB问题。我有这个档案:

ec2-23-22-59-32, mongoc, i-b8b44, instnum=1, Running
ec2-54-27-11-46, mongod, i-43f9f, instnum=2, Running
ec2-78-62-192-20, mongod, i-02fa4, instnum=3, Running
ec2-24-47-51-23, mongos, i-546c4, instnum=4, Running
ec2-72-95-64-22, mongos, i-5d634, instnum=5, Running
ec2-27-22-219-75, mongoc, i-02fa6, instnum=6, Running
我可以处理该文件以创建如下数组:

irb(main):007:0> open(inFile).each { |ln| puts ln.split(',').map(&:strip)[0..1] }
ec2-23-22-59-32
mongoc
ec2-54-27-11-46
mongod
....
....
但我真正想要的是连接到“mongo类型”的事件编号,以便它成为:

ec2-23-22-59-32
mongoc1
ec2-54-27-11-46
mongod1
ec2-78-62-192-20
mongod2
ec2-24-47-51-23
mongos1
ec2-72-95-64-22
mongos2
ec2-27-22-219-75
mongoc2
每个mongo类型的数量并不是固定的,它会随着时间的推移而变化。有什么可以帮我的吗?提前谢谢。干杯

快速回答(可能可以优化):

输出:

# "ec2-23-22-59-32 : mongoc1"
# "ec2-54-27-11-46 : mongod1"
# "ec2-78-62-192-20 : mongod2"
# "ec2-24-47-51-23 : mongos1"
# "ec2-72-95-64-22 : mongos2"
# "ec2-27-22-219-75 : mongoc2"

我认为这是一个相当大的进步。如果您不明白,请告诉我。

您如何定义“发生次数”?它是在文件中还是经过计算的?附加实例号是否足以满足您的需要?@Mark:应该计算该值。比如说,如果文件中有三个mongod条目,那么我应该有
mongod1
mongod2
mongod3
,并且相同的规则也应该应用于其他Mongo实例。MongoC、MongoD和MongoS的数量在文件中有所不同,这取决于用户在启动虚拟机时的决定,并且文件是根据他们的需求自动生成的。这能回答你的问题吗?干杯@马克:w.r.t.你的最后一个问题,在“mongo”后面加上“实例号”不是我真正想要的东西,但我希望看到hoe来做。我可以把它用于其他目的。干杯非常感谢,效果很好。我想我理解了其中的大部分,但是你能解释一下第四行计算值的地方吗?干杯
# "ec2-23-22-59-32 : mongoc1"
# "ec2-54-27-11-46 : mongod1"
# "ec2-78-62-192-20 : mongod2"
# "ec2-24-47-51-23 : mongos1"
# "ec2-72-95-64-22 : mongos2"
# "ec2-27-22-219-75 : mongoc2"