編輯以澄清解析配置文件,並轉換成數組嵌套哈希
我「已經」做了一些搜索(以上我可以指望)對谷歌的,顯然我是不正確的關鍵詞搜索。我發現了很多網站(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' 提供了兩種可能的解決方案(謝謝!)。 Configtron將無法工作,因爲我解析的配置中的許多密鑰都是/整數,Configtron不喜歡這樣做。它有點使用.store和.fetch方法,但更新現有的存儲值是一個問題。哈希克斯正是我期待的......太棒了!
對不起,我沒有在我的許多搜索中跑過它,我想要!我確實覺得有人假設我沒有足夠好或者根本沒有足夠的搜索。答案很嚴厲。這應該是一個友好的地方,表現出尊重的程度,最初的假設不會偏向負面。我知道在發佈之前應該做一些研究,並且問題應該清楚。但是,對一個人而言,清楚的並不是另一個人。一個恰當的問題可能是「我不明白你的問題,你能澄清你的意思嗎?」?或「是你正在解析一個你創建的還是正在從另一個源拉取的配置?」,vs你的問題不清楚。我的回答是恭敬的......是什麼不明確?很高興澄清。我再一次認爲「From」這個格式(我已經說過我正在解析一個文件「)...」對於「那種格式(哈希)是不言自明的
沒有試圖成爲一個混蛋這裏還是忘恩負義,但來的人,我覺得這個問題是儘可能不讀的問題,因爲它是我沒有把它明確了一些你。
問候
看樣子有人編輯您的文章(或你做了),有人向下投它。這有點令人困惑。最好給一部分你的解釋,然後用一些代碼來說明,而不是一個長時間混淆的解釋,然後是很多代碼。我想你可能會考慮使用某種現有的系統,如JSON或YAML。 – Beartech
我不是那個低估了這一點的人,但我認爲你需要澄清你的問題才能獲得這方面的幫助。有關構建問題的信息,請參閱幫助部分,以最大限度地獲得答案。 –
是的,沿着..的線。我有這樣的數據<示例數據>,我想這樣編碼:<示例編碼>,並能夠像這樣訪問:<如何訪問數據的示例>。 – Beartech