6

defaults readOS X端末コマンドの出力を解析するにはどうすればよいですか?

「古い」NeXTSTEP plist形式を出力しているようです。次のようになります。

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

出力をファイルに書き込んで で変換しようとしましたplutilが、チョークします:

> 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、順序の一貫したシリアライザーを介してデータをパイプすることができます。

4

4 に答える 4

3

あなたは幸運な人です。ほんの数日前、誰かが PyPi で NeXTSTEP plist 形式のパーサーをリリースしました – nsplist

于 2014-02-02T21:00:06.430 に答える