plutil的方向信息出现问题。我想检查.plist是否包含密钥CFBundleShortVersionString。我认为plutil没有任何选项可以测试密钥是否存在,所以我想我可以直接使用plutil -show file.plist >file.txt
,但这样做不起作用。:/因此我尝试使用转储选项plutil -dump file.plist >file.txt
将plist文件从stdout定向到file,但没有成功。:/我还尝试将stdout定向到stderr和stderr,然后将stdout定向到file。没有任何效果。我该如何操作?
6条答案
按热度按时间qoefvg9y1#
一个不依赖于额外的实用程序来安装的行:
适用于macOS Monterey及更高版本
适用于macOS Big Sur及更早版本(无原始格式类型)
cl25kdpy2#
如果你需要测试你的.plist是否存在
CFBundleShortVersionString
键,最好这样使用PlistBuddy
:gblwokeq3#
plutil -extract CFBundleShortVersionString xml1 -o - App-Info.plist
命令输出CFBundleShortVersionString
属性的内容vawmfj5a4#
为了回答您的问题,您可以创建一个小bash脚本,其中包含:
如果你调用bash脚本pldump,让它可以用
chmod +x pldump
执行。把它放在你的路径中的某个地方,这样使用它:我看不出有其他方法可以将plutil输出到stdout。
fbcarpbf5#
返回plist中包含文本'cbk'的所有行。由于某种原因,
plutil
将其输出发送到stderr。上面的命令将stderr重定向到stdout,这样它就可以成功地通过管道发送到grep
(或者重定向到一个文件,或者任何你想要的东西)。z31licg06#
在macOS Monterey中,您可以通过检查返回状态来测试keypath是否存在以及是否为字符串。
1
=未通过测试0
=通过当然,如果发生其他问题(例如打开文件时出现问题),也会返回
1
。根据您的需要,一种类似的方法是询问
plutil
该keypath上的值的类型。