我想使用shell脚本编辑xml文件。
我有这样的事情
#target div {
background: green;
height: 16px; width: 128px; padding: 10px;
}
#target div h1 {
background: red;
height: 16px; width: 64px; padding: 10px;
}
#target div h1 span {
background: purple; display: block;
height: 16px; width: 32px; padding: 10px;
}
我希望我的脚本使用变量
来编辑这样的.xml文件ex:$ value = 3.2 ''命令更改xml文件''得到这个:
<div id="target"></div>
我一直在网上看,但没有什么对我有用..
编辑:我正在寻找一种通用方式。
例如此帖子的解决方案:How to change specific value of XML attribute using scripting on Mac
不是我正在寻找的东西,因为它取决于之前的xml文件。
答案 0 :(得分:2)
使用sed:
$ ver=3.2;
$ sed "s/\(<version>\)[^<]*\(<\/version>\)/\1$ver\2/" <<< "<version>1.7.21</version>"
<version>3.2</version>
将其应用于档案:
$ ver=3.2;
$ sed -i "s/\(<version>\)[^<]*\(<\/version>\)/\1$ver\2/" file
-i
选项用于编辑文件 。
更新:
要将sed命令应用于路径,必须转义路径中的斜杠:
ver="\/path\/to\/fix\/CHANGE.XML";
或使用您在路径中找不到的字符更改sed分隔符。 |
的示例:
sed "s|\(<version>\)[^<]*\(<\/version>\)|\1$ver\2|"