我正在尝试从OHAI获取用于Windows机器的已安装软件包Firefox的版本
ohai的输出包含如下软件包信息
"ohai_time": 1540893742.872569,
"packages": {
"Mozilla Firefox 62.0.2 (x64 en-US)": {
"version": "62.0.2",
"publisher": "Mozilla"
},
"Mozilla Maintenance Service": {
"version": "62.0.2",
"publisher": "Mozilla"
},
"Symantec NetBackup Client": {
"version": "7.7.2",
"publisher": "Symantec Corporation",
"installdate": "20180618"
}, .....
......so on...
问题是我不能使用此处使用的全名,因为它包含版本本身
否则我可以用 node ['packages'] ['Mozilla Firefox 62.0.2(x64 zh-CN)'] ['version']
相反,我想使用诸如node ['packages'] [“ Mozilla *”] ['version']
之类的东西我尝试使用循环和.include?但是没有用。 我在这里有什么选择?使用红宝石或毛圈或其他任何东西
感谢您的提前答复。
答案 0 :(得分:0)
如果您粘贴了哈希,则可以使用find
方法:
node["packages"].find { |key, _| key =~ /Mozilla Firefox/ }
=> [:"Mozilla Firefox 62.0.2 (x64 en-US)", {:version=>"62.0.2", :publisher=>"Mozilla"}]
请记住,它将把您的哈希转换为数组,但是可以轻松地将其还原。