
先日に引き続きPlistネタです。
シェルスクリプトでパッケージの情報を変更したり、証明書を変更したい時にコマンドでPlistの値を変更できると色々便利です。しかしながら、階層になっているPlistの値を変更するが少し難しかったので紹介します。
使うコマンドはPlistBuddyです。
方法
以下のようなPlistがあったとして...
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> < plist version = "1.0" > < dict > < key >ArrayKey</ key > < array > < dict > < key >foobar</ key > < string >foobarValue</ string > < key >hogehoge</ key > < string >hogehogeValue</ string > </ dict > </ array > < key >Rin</ key > < string >Aki</ string > </ dict > </ plist > |
ArrayKey/hogehogeの値を変更したい時には以下のようにします。
/usr/libexec/PlistBuddy -c "Set ArrayKey:0:hogehoge ChangedValue" /tmp/Info .plist |
ポイントは、階層になっているKeyは:で繋げます。
もちろんバイナリ形式のPlistもOK
0 件のコメント :
コメントを投稿