【发布时间】:2017-06-13 15:34:15
【问题描述】:
我有几个包含产品安装信息的文件。 我可以从文件中查找我想要的元素(例如,“版本”)。我最终得到了这样的结果:
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 作为元素的数组。
每个数组内部都是该特定实例所具有的组件。
上面的完整预期数组和组件:
array[0] = instancefile1 # 可以像文件名一样保持这个命名, 或指定名称。没关系
array[0][0] = ABC_version=1.2.3 array[0][1] = XYZ_version=2.5数组[1] = 实例文件2
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 是最好的工具?
【问题讨论】: