sedはファイルの単語を他のファイルの内容に置き換えますか? [コピー]

sedはファイルの単語を他のファイルの内容に置き換えますか? [コピー]

2つのファイルfile1file2

ファイル1の内容:

Text1
Text2
Text3

ファイル2の内容:

Sample1 
Sample2
Sample3

file1Text1の「from」という単語をcontentに置き換えたいと思いますfile2。次のコマンドを試しました。

sed -i 's/Text1/r file2/g' file1
sed -e 's/Text1/`cat file1`/' < file2

どちらも機能しません。私は何を見逃していますか?

ベストアンサー1

全体の背骨ではなく1つだけ交換したい場合は、wordいくつかのトリックを使用する必要があります。

sed "s/100/$(cat -E file2 |tr -d '\n')/;s/\\$/\n/g" file1

または

sed -e s/100/$(tr \\n $ < file2)/ -e s/\\$/\\n/g file1

主なアイデアsedひもエディタなので、複数行の文字列を受け入れることはできません(つまり、改行文字を含む)ほとんどの場合。ヒントは、置き換えられるファイルから改行文字を削除して置き換えてから再挿入することです。

おすすめ記事