我有幾個包含產品安裝信息的文件。 我能夠從文件中grep我想要的元素(例如,「版本」)。而我最終是這樣的:動態生成數組和子數組(perl)
instancefile1:ABC_version=1.2.3
instancefile1:XYZ_version=2.5
instancefile2:ABC_version=3.4.5
instancefile3:XYZ_version=1.1
凡組件的命名ABC或XYZ。
我想要做的是採取這個grep輸出並通過perl解析它以在文件上構建數組。 第一個數組將由實例編號(從文件名中拉出)組成 - 上面,我將有一個數組,它將以1,2,3作爲元素。
而在這些數組中,每個數組都將是該特定實例所具有的組件。
全部預期陣列和部件從上方:
陣列[0] =#instancefile1可以保持這個命名像的文件名, 或分配名稱。不要緊
array[0][0] = ABC_version=1.2.3 array[0][1] = XYZ_version=2.5
陣列[1] = instancefile2
array[1][0] = ABC_version=3.4.5
數組[2] = instancefile3
array[2][0] = XYZ_version=1.1
(我知道我的符號來引用子數組是不正確的 - 我在我的perl上生鏽了。)
我該怎麼做? (我一直在用bash數組和grep來做,然後通過初始的grep輸出和我的第一個數組重複,然後用另一個grep來填充另一個數組 - 但是這好像是它不止一次地處理數據,而不是在飛行中構建它。)
這個想法是讓它按照它看到的構建每個數組。它看到「fileinstance1」,它將值存儲在該數組中的右側,因爲它看到它。然後,如果它看到「fileinstance2」,它將創建該數組並使用這些值進行填充,所有操作都將在一次完成。我相信perl是最好的工具嗎?