最近由于工作需要,发现了这么一个小工具。
PlistBuddy是一个Mac里的命令行下读写plist文件的工具。
位于/usr/libexec/下,由于这个路径不在默认的PATH里,需要通过绝对路径/usr/libexec/PlistBuddy引用。
使用起来很简单,功能也很丰富。
举几个例子:
A.plist内容如下
B.plist内容如下
通过命令打印出plist的内容
/usr/libexec/PlistBuddy -c "print" A.plist
得到结果
Dict {
KeyA = ValueA
KeyC = ValueC
KeyB = ValueB
}
通过命令得到一个entry的值
$ /usr/libexec/PlistBuddy -c "print KeyA" A.plist
输出
ValueA
这些都是简单的功能。PlistBuddy最好用的一个功能应该算是merge了。
merge命令可以合并两个plist文件,一个认为是源文件,一个作为目标文件。
比如命令
/usr/libexec/PlistBuddy -c "merge A.plist" B.plist
PlistBuddy把A.plist中的条目逐个插入到B.plist中,如果B.plist中已经有相同Key的条目就跳过此条目。
如上面的命令,得到结果
$ /usr/libexec/PlistBuddy -c "merge A.plist" B.plist
Duplicate Entry Was Skipped: KeyA
$ /usr/libexec/PlistBuddy -c "print" B.plist
Dict {
KeyC = ValueC
KeyD = ValueD
KeyA = ValueNewA
KeyB = ValueB
}
更多命令可以通过man或者-h来查看
$/usr/libexec/PlistBuddy -h
man PlistBuddy