使用SED将XML中的文本替换为另一个文件的内容

时间:2013-11-11 17:02:45

标签: bash sed

我正在尝试使用SED搜索并使用/tmp/dictionary.txt的内容替换“REPLACEME”。

我已经尝试过在堆栈溢出时提到的一些其他解决方案,但是它们不断抛出错误: sed:3:“#REPLACEME

谢谢!

我正在使用的脚本:

#!/bin/bash


sed '#          <string>REPLACEME</string># {
r /tmp/dictionary.txt
}' /tmp/plaintext.plist > palintext_ammended.plist

2 个答案:

答案 0 :(得分:2)

这应该有效:

sed -e '/<string>REPLACEME<\/string>/r /tmp/dictionary.txt' -e '//d' /tmp/plaintext.plist

sed仅允许s(替换)命令的替代分隔符。对于#,它将忽略命令的其余部分,可能将其视为注释。

答案 1 :(得分:1)

这可能适合你(GNU sed):

sed -e '/REPLACEME/{s//\n/;P;e cat dict.txt' -e 'D}' plain.txt