如何解析OS X defaults read终端命令的输出?

它似乎输出“旧的” NeXTSTEP plist格式;看起来像这样的东西:

{
"Apple Global Domain" =     {
    AppleAntiAliasingThreshold = 4;
    AppleCollationOrder = root;

我试图将输出写入文件并使用plutil进行转换,但它很kes:
> defaults read > defaults.txt
> plutil -convert xml1 defaults.txt
2014-02-02 21:29:14.856 plutil[56896:707] CFPropertyListCreateFromXMLData(): Old-style
plist parser: missing semicolon in dictionary on line 10835. Parsing will be abandoned.
Break on _CFPropertyListMissingSemicolon to debug.
defaults.txt: Property List error: Unexpected character { at line 1 / JSON error: No
value for key in object around character 28.

你为什么问?

我想将默认值存储在git中,以便我可以在应用更改后将记录保存为更改设置和diff,但是defaults read中的序列化似乎不是“行顺序稳定”的:字典不会以一致的方式转储其键秩序,造成巨大的噪音。如果我可以解析defaults read,则可以通过顺序一致的序列化器将数据通过管道传输出去。

最佳答案

您真幸运,几天前有人在PyPi上发布了NeXTSTEP plist格式的解析器–
nsplist

关于macos - 如何在OS X上解析 `defaults read`的输出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21511463/

10-11 17:27