我有两个文件file1
& file2
.
文件1的内容:
Text1
Text2
Text3
文件2的内容:
Sample1
Sample2
Sample3
我想file1
用 的内容替换 Text1 from 一词file2
。我已经尝试过以下命令:
sed -i 's/Text1/r file2/g' file1
sed -e 's/Text1/`cat file1`/' < file2
两者都不起作用,我错过了什么?
答案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
是细绳编辑器所以它不能接受多行字符串(这意味着带有换行符)在大多数情况下。诀窍是从要交换的文件中删除换行符,进行替换,然后将它们放回去。
答案2
如果您只想将 file1 替换为 file2 的内容,则以下任一操作都可以:
cat file2 > file1
cp file2 file1