我想编写一个脚本,dict
从 *.plist 文件中删除指定的脚本,但是我在互联网上找到的任何内容都不起作用。有没有办法做到这一点?我试过sed
comman 但这不起作用
问问题
818 次
2 回答
-1
Sed 是一个非常糟糕的工具。尝试 PlistBuddy,如果它存在于 iOS 上(它确实存在于 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
}
}
}
您也可以在命令行上或通过此处的文档提供命令。互动更容易玩:-)
于 2012-07-07T12:20:05.597 回答