キーワードを他のファイルの内容全体に置き換える [重複]

キーワードを他のファイルの内容全体に置き換える [重複]

キーワードを他のファイルの内容全体に置き換えるbashスクリプトを作成しました。これは私が使用するコマンドです:

sed -i "s/CONTENT/$(cat $pathB)/" $pathA

1つの文書

Here is my introduction:
CONTENT
Thank you.

Bファイル

I'm OOO.
I'm 10 years old.
I like play baseball

結果ファイル

Here is my introduction:
I'm OOO.
I'm 10 years old.
I like play baseball
Thank you.

しかし、これはエラーを示しています:

sed: -e expression #1, char 14: unknown option to `s'

私は何が間違っていましたか?

答え1

以下を使用してrファイルの内容を追加し、パターンを含む行を削除できます。

sed -i -e "/CONTENT/r $pathB" -e '//d' $pathA

コマンドが失敗する理由は、sコマンドが次に拡張されたためです。

sed 's/CONTENT/Im OOO.
Im 10 years old.
I like play baseball' $pathA

関連情報