为澄清而编辑
我“已经”在谷歌上进行了多次搜索(超过我数不清的),显然我没有用正确的关键词进行搜索。我发现许多网站(rubyforum、个人网站、stackoverflow 等)都没有真正解决我的特定问题,也没有一个我能够适应。
我正在解析一个包含部分和子部分的配置文件。也就是说,它是我从设备中提取的文件,而不是我可以创建的文件。我想创建该配置的哈希,其中包含用于快速访问键或子键的部分和子部分,这样如果我知道给定 MAC 的索引,我可以快速将其状态设置为禁用,而不必遍历寻找 MAC 和跟踪索引的字符串或数组版本的配置。
配置文件内容(部分)我想转换:即我将读取文件并转换为散列。
aaa.1.br.devname=br0
aaa.1.devname=ath0
bridge.1.devname=br0
wireless.1.mac_acl.1.comment=testsm
wireless.1.mac_acl.1.mac=DC:9F:DB:32:0A:2E
wireless.1.mac_acl.1.status=enabled
wireless.1.mac_acl.policy=allow
wireless.1.mac_acl.status=enabled
我想将其转换为:
{
:aaa => {:"1" => {
:br => {:devname => "br0"},
:devname => "ath0"
}
},
:bridge => {:"1" => {:devname => "br0"}},
:wireless => {:"1" => {
:mac_acl => {
:"1" => {:comment => "testsm", :mac => "DC:9F:DB:32:0A:2E", :status => "enabled"}
},
:policy => "allow",
:status => "enabled"
}
}
}
'Edgars Jekabsons' 提供了两种可能的解决方案(谢谢!!)。Configatron 不能工作,因为我正在解析的配置中的许多键是/将是整数,Configatron 不喜欢这样。它在使用 .store 和 .fetch 方法时有些工作,但是更新现有的存储值是个问题。Hashquiz 正是我想要的……太棒了!
抱歉,我在多次搜索中都没有遇到它,我想要!我确实觉得有人假设我搜索得不够好或根本没有。并且反应严厉。这应该是一个友好的地方,在这里可以表现出一定程度的尊重,并且最初的假设不会倾向于消极。我知道在发布之前应该进行一些研究,并且问题应该很清楚。然而,对一个人来说清楚的事情对另一个人来说不是。一个适当的问题可能是“我不明白你的问题,你能澄清你的意思......吗?” 或“您正在解析的配置是您创建的还是从另一个来源提取的?”,而不是您的问题不清楚。恭敬地,我的回答是……什么不清楚?很高兴澄清。我再次认为“
不是想在这里成为一个混蛋或忘恩负义,但来吧伙计们。我觉得问题在于没有阅读问题,因为我没有对你们中的一些人说清楚。
此致