*.plist ファイルから指定されたものを削除するスクリプトを書きたいのdict
ですが、インターネットで見つけたものは何も機能しません..それを行う方法はありますか? コマンドを試しsed
ましたが、これは機能しません
質問する
818 次
2 に答える
-1
Sed は、これには非常に悪いツールです。iOSに存在する場合は、代わりにPlistBuddyを試してください(MacOSには存在します...)。/usr/libexec/PlistBuddy という名前で、plist ファイルを操作できます。
構文は少し奇妙ですが、「エントリ」は次のように指定されているようです。plist ファイルの先頭から開始します。配列の場合は、アドレス指定する要素のインデックスを指定します。辞書の場合は、移動するキー名を指定します。そのような指定はコロンで区切ります。スペースがある場合は、全体を "" で囲みます。
私のサンプルファイルはこれです:
stieber@:~> cat foo.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="1.0">
<array>
<dict>
<key>Sample 1</key>
<array>
<string>Sample String 1</string>
<dict>
<key>Sample 2</key>
<string>Sample String 2</string>
</dict>
</array>
</dict>
</array>
サンプル セッション:
stieber@:~> /usr/libexec/PlistBuddy foo.plist
Command: print
Array {
Dict {
Sample 1 = Array {
Sample String 1
Dict {
Sample 2 = Sample String 2
}
}
}
}
Command: print "0:Sample 1:1"
Dict {
Sample 2 = Sample String 2
}
Command: delete "0:Sample 1:1"
Command: print
Array {
Dict {
Sample 1 = Array {
Sample String 1
}
}
}
コマンドラインでも、ヒアドキュメントでもコマンドを提供できます。Interactive の方が簡単に操作できます :-)
于 2012-07-07T12:20:05.597 に答える