shell - 通过PlistBuddy从plist中提取多个字段

时间:2013-12-02 04:34:35

标签: shell plist

我需要从plist文件中提取一些值。我在OSX上找到了名为PlistBuddy的工具,这是我用于任务的东西(我使用shell脚本,最后我会尝试使用python,但暂时我会坚持使用shell)。

问题在于我需要获取具有相同名称的值("时间"和#34;革命"),但它们位于plist文件的不同分支中。 这就是plist的组织方式:

root
    iteration1
        compound 1
            time
            revolutions
        compound 2
            time
            revolutions
        compound 3
            time
            revolutions
    iteration2
        compound 1
            time
            revolutions
        compound 2
            time
            revolutions
        compound 3
            time
            revolutions

此时,我试图获取时间和转数值,并根据迭代次数计算每种化合物的平均值。

我的第一种方法是进行循环,进行n次迭代,然后是所有化合物的列表,其中包含时间和转数值,所有化合物都按顺序保存在数组中。

这很容易出错,因为我没有每个值的ID,而且它依赖于这个位置总是相同的事实......你可以想象它作为算法真的很糟糕。 / p>

我尝试的另一种方法是读取每个值,对于所有迭代,计算平均值然后继续下一个化合物,直到我完成;但这种做法似乎非常复杂。

现在,一个好的解决方案是字典,所以我可以在每个化合物下保存每个值,但是shell没有字典;所以我对如何处理这个问题感到有点迷茫。

理想情况下,我应该为每个化合物得到每个值,然后计算n次迭代的平均值。

我仍然在探索解决方案,所以如果有人建议如何解决这个问题,我真的很感激。此外,PlistBuddy工具的语法也非常严格。

我很想使用python而只是放下shell脚本,但这会花费我更多的时间,因为我对plist的操作知之甚少。

提前致谢

0 个答案:

没有答案