plutilには、これまで紹介した個別のコマンドオプション以外に、出力形式やファイル名の扱いを調整する細かいオプションがある。
-sで成功時の出力を抑制する
-sを付けると、コマンドが成功した場合に何も出力しない。-lintの記事で紹介したとおり、正常なファイルの出力を減らしたい場合に使う。
$ plutil -lint -s sample.plist
$ echo $?
0
-sはcommand_optionの後ろに置く必要がある。前に置くとunrecognized optionエラーになる。
-rでJSON出力を整形する
-rを付けると、JSON形式の出力にインデントを追加し、キーをアルファベット順にソートして人間可読にする。
$ plutil -convert json -r -o - sample.plist
{
"Count" : 3,
"Name" : "Sample",
"Tags" : [
"a",
"b"
]
}
-rを付けない場合は改行やインデントのない1行のJSONになる。
-nで改行を抑制する
-nは-extractのrawフォーマットと組み合わせたときに、出力の末尾の改行を付けない。
$ plutil -extract Name raw -n -o - sample.plist | xxd | tail -1
00000000: 5361 6d70 6c65 Sample
シェル変数へ代入する際、余分な改行を含めたくない場合に使える。
–で以降をすべてファイル名として扱う
--を指定すると、それ以降の引数をオプションではなくファイル名として扱う。ハイフンで始まるファイル名を指定する場合に使う。
$ plutil -lint -bare.plist
unrecognized option: -bare.plist
$ plutil -lint -- -bare.plist
-bare.plist: OK
--を付けないと、-bare.plistがオプションの一部と誤認識されエラーになる。--を付けることで、ファイル名として正しく扱われる。
参考
【plutil】-lintでplistの構文エラーを検出する\第一線のプログラマーの行動原理を学べる!/
