在子目录中的文件中查找信息字符串

时间:2014-05-25 19:33:29

标签: macos unix

我在OSX上,我有一个文件夹,其中包含大约200个.bundle文件(它们实际上是文件夹)。每个.bundle文件夹中都有Info.plist -xml文本。 在每个info.plist中,我正在寻找一个特定的字符串,例如CFBundleExecutable和另一个字符串键> CFBundleGetInfoString 我需要CFBundleExecutable之后的文本和CFBundleGetInfoString之后的文本

我想创建一个包含.bundle文件名及其旁边版本的日志。

所以输出应该看起来像

a.bundle version 1.0.1
b.bundle version 1.0.1
c.bundle version 1.2.2

我试过awk然后找到但没有结果......

1 个答案:

答案 0 :(得分:0)

您可以利用Python的内置plistlib模块轻松解析plist。这是一个简单的单行程,可以帮助您入门:

find . -name Info.plist \
-execdir python -c 'import plistlib; \
       pl = plistlib.readPlist("Info.plist") ; \
       print("{0} version {1}".format(pl.get("CFBundleExecutable", "<none>"), \
                                      pl.get("CFBundleGetInfoString", "<none>")))' ';'