1

「REPLACEME」を検索して、SED を使用して /tmp/dictionary.txt の内容に置き換えようとしています。

スタック オーバーフローについて言及されている他の解決策をいくつか試しましたが、エラーが発生し続けます: 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(substitute) コマンドの代替区切り文字のみを許可します。それを使用#すると、おそらくそれをコメントとして扱って、コマンドの残りを無視します。

于 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 に答える