【发布时间】:2017-06-20 15:38:02
【问题描述】:
我想使用 sed 替换 xml 文件中标签内的值。
<version> xxxx-SS </version>
我想用一些 shell 变量 $ver 替换 xxxx-SS。 最终结果应该是
<version>$ver</version>
替换第一个实例后,sed 命令也应该退出。
到目前为止,我只能追加到 xxxx-SS 并且无法在第一场比赛后退出。
sed 's#\(<version>\)*\(</version>\)#\1'$ver'\2#g' test.xml
这只会在-SNAPSHOT标签之间附加值。基本上使它成为xxxx-SS$ver
【问题讨论】:
-
添加您试图质疑的代码...不建议对 xml 使用正则表达式,使用 xml 感知解析器
-
请立即查看
-
上面使用的正则表达式将不起作用:至少将
*更改为.*,但最好使用xmlstarlet查看下面的解决方案。