我在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然后找到但没有结果......
答案 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>")))' ';'