plutilはmacOS標準搭載のコマンドで、plist(property list)ファイルの検証・変換・編集ができる。-pオプションで、XML形式やバイナリ形式のplistファイルの中身を人間が読みやすい形式で表示できる。
plistの中身を表示する
$ plutil -p sample.plist
{
"Count" => 3
"Name" => "Sample"
"Tags" => [
0 => "a"
1 => "b"
]
}
辞書は{}、配列は[]で表示され、配列の要素にはインデックス番号が添えられる。この出力形式はman plutilにも「マシンでのパースを想定しない、安定していないフォーマット」と明記されており、あくまで人間が目視で確認するための表示専用である。
複数ファイルをまとめて表示する
引数に複数のファイルを指定すると、それぞれの内容を続けて表示する。
$ plutil -p sample.plist sample2.plist
標準入力から読み込む
ファイル名の代わりに-を指定すると、標準入力からplistを読み込んで表示する。
$ cat sample.plist | plutil -p -
{
"Count" => 3
"Name" => "Sample"
"Tags" => [
0 => "a"
1 => "b"
]
}
パイプで別コマンドの出力を直接確認したい場合に使える。
存在しないキーを扱うコマンドのエラー
plutilの他のオプション(-typeや-extractなど)で存在しないキーパスを指定すると、エラーメッセージと共に終了コード1で失敗する。
$ plutil -type NoSuchKey sample.plist
sample.plist: Could not extract value, error: No value at that key path or invalid key path: NoSuchKey
スクリプト内でplutilの実行結果を判定する際は、終了コードで成否を確認できる。
参考
PLUtil Command: macOS Property List utility\第一線のプログラマーの行動原理を学べる!/
