![キーワードを他のファイルの内容全体に置き換える [重複]](https://linux33.com/image/199972/%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E4%BB%96%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%86%85%E5%AE%B9%E5%85%A8%E4%BD%93%E3%81%AB%E7%BD%AE%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%8B%20%5B%E9%87%8D%E8%A4%87%5D.png)
キーワードを他のファイルの内容全体に置き換える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