plutil -extractにフォーマットとしてrawを指定すると、plist(property list)の値をplist形式でラップせず、生の値として取得できる。数値や真偽値などのスカラー値を単独で取り出す場合はこのraw形式を使う。
文字列・数値を取得する
$ plutil -extract Name raw -o - sample.plist
Sample
$ plutil -extract Count raw -o - sample.plist
3
前記事で紹介したjson/xml1のようなフォーマットと違い、値の型を表す構文(引用符やタグ)を含まない生の値がそのまま出力される。xml1については【plutil】plistのxml1形式とbinary1形式の違い
を参照。
真偽値を取得する
$ plutil -extract Flag raw -o - sample.plist
true
trueまたはfalseという文字列で出力される。
配列を取得すると要素数が返る
man plutilのRAW VALUES AND EXPECTED TYPESに記載の通り、配列に対してrawを指定すると、配列の中身ではなく要素数が返る。
$ plutil -extract Tags raw -o - sample.plist
2
配列そのものの中身を取り出したい場合は、前記事で紹介したjson/xml1形式を使う。
辞書を取得するとキー一覧が返る
辞書に対してrawを指定すると、キー名がアルファベット順で1行ずつ出力される。
$ plutil -extract Meta raw -o - sample.plist
Author
Zebra
-nで末尾の改行を抑制する
-nを併用すると、出力の末尾に改行を付けない。シェルの変数へ代入する際に余分な改行を含めたくない場合に使える。
$ NAME=$(plutil -extract Name raw -n -o - sample.plist)
$ echo "[$NAME]"
[Sample]
参考
【plutil】-extractでplistから値を抽出する\第一線のプログラマーの行動原理を学べる!/
