sedを使用して、あるファイルのパターンを別のファイルの内容全体に置き換えようとします。
現在私は以下を使用しています:
sed "s/PATTERN/`cat replacement.txt`/g" "openfile.txt" > "output.txt"
'
ただし、代替ファイルに、"
または同じ文字が含まれていると/
入力が削除されず、エラーが発生し始めます。
試してみました。このガイド助けようとするのに理解しにくいですね。提案されたコマンドを試すと、文字列のみがr file
表示されます。
この問題を解決するための最良の方法は何ですか?
ベストアンサー1
これあなたのために働く必要があります。ファイル'
におよび文字があることをすでに指定しているため、重複して終了するように投票していません/
。"
だから、次のテストをしてみました。
私はfile1
以下を持っています。
cat file1
ramesh' has " and /
in this file
and trying
"to replace'
the contents in
/other file.
これで、file2
次のようになります。
cat file2
This is file2
PATTERN
After pattern contents go here.
共有リンクに基づいて、次のように作成しましたscript.sed
。
cat script.sed
/PATTERN/ {
r file1
d
}
sed -f script.sed file2
今私が得る出力でコマンドを実行すると、次のようになります。
This is file2
ramesh' has " and /
in this file
and trying
"to replace'
the contents in
/other file.
After pattern contents go here.
編集する:これはファイルの複数のパターンにも当てはまります。