在 Linux 中编辑 PLIST 中的值
Posted
技术标签:
【中文标题】在 Linux 中编辑 PLIST 中的值【英文标题】:Edit value inside PLIST in Linux 【发布时间】:2011-06-06 04:10:42 【问题描述】:我有一个 XML Plist,如果该键存在,我需要一个 bash 脚本来编辑该键的整数值,如果不存在,则创建该键和整数值。这是一台 Linux 机器,所以 Mac OS X 的defaults
命令不可用。
也就是说,最终的 Plist 应该是这样的:
<dict>
…
<key>myKey</key>
<integer>54</integer>
…
</dict>
键myKey
是否已经存在于原始Plist中,其中整数值54
由变量提供。
在 Mac OS X 中,我会这样做:
defaults write ./myPlist myKey -int $(echo $myKey_value)
但就像我说的,Linux 中没有defaults
命令。我试过sed
,但显然它只能匹配单行。也许awk
或perl
可以,但我对这两者几乎一无所知。
【问题讨论】:
【参考方案1】:Data::Plist::XMLWriter
【讨论】:
我宁愿不用安装任何东西,因此我尝试使用 sed 并认为 awk 或 perl 可能也适合这项工作。 @elmimmo:AWK 和sed
无法胜任这项工作。答案中的链接是针对 Perl 模块的。
我了解 XMLWriter 是如何成为这项工作的专用工具。然而,这是脚本需要执行的唯一单个 XML 操作,并且在这台计算机上也不需要其他类似性质的操作。因此,我正在考虑一种更简单的方法:如果包含 <key>asdf</key>
条目将是微不足道的。如果您预计需要处理更多内容,请使用 XMLWriter。 Apple 在这里有一个 DTD:apple.com/DTDs/PropertyList-1.0.dtd以上是关于在 Linux 中编辑 PLIST 中的值的主要内容,如果未能解决你的问题,请参考以下文章