1

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

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

谢谢!

我正在使用的脚本:

#!/bin/bash


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

2 回答 2

2

这应该有效:

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

sed 只允许s(替代)命令的替代分隔符。使用#它将忽略命令的其余部分,可能会将其视为注释。

于 2013-11-11T17:07:42.930 回答
1

这可能对您有用(GNU sed):

sed -e '/REPLACEME/{s//\n/;P;e cat dict.txt' -e 'D}' plain.txt
于 2013-11-11T20:33:12.673 回答