sed替换xml标记内的文字$ {something}

时间:2011-10-29 13:53:00

标签: bash sed

我正在尝试执行以下操作:

find . -iname pom.xml 
| xargs sed -i 
 "s/<version>${project.version}</version>/<version>0.9.1-SNAPSHOT</version>/g"

但它不起作用。我需要在这里逃脱什么?

我尝试了多种组合,例如在版本和/中转义$

2 个答案:

答案 0 :(得分:5)

逃脱$.。使用不同的分隔符;)。

sed "s;<version>\${project\.version}</version>;<version>0.9.1-SNAPSHOT</version>;g"

答案 1 :(得分:0)

您想要的匹配字符串是<version>\${project\.version}<\/version>(转义$./。您想要的替换字符串是<version>0.9.1-SNAPSHOT<\/version>(转义/)。

组合产生:

"s/<version>\${project\.version}<\/version>/<version>0.9.1-SNAPSHOT<\/version>/g"