我知道如何使用sed
. 但是有没有一种简单的方法,用第二个文件的全部内容替换文件中的一行?
所以,让我们举个例子。我有一个名为file1.txt
:
A 1
B 2
C 3
我有第二个文件file2.txt
:
line 1
line 2
line 3
现在,我想line 2
用 的全部内容替换file1.txt
,所以最后应该是这样的
line 1
A 1
B 2
C 3
line 3
我能想到的一种方法是这样的:
sed -i "s/line 2/$(cat file1.txt)/g" file2.txt.
但是我还必须检查一些特殊字符,比如/
甚至更多。我不得不假设,每个可能的可读字符都可以在file1.txt
.
所以,回到我的问题:有没有一种简单的方法,用第二个文件的全部内容替换文件中的一行?它不必是sed
。它也可以是另一种工具,如果它可以更好地完成工作......
sed
脚本是文件名后的换行符
file1.txt
是强制性的,因此在命令行上将其拆分为单独-e
的表达式使其更具可读性该脚本查找内容为 的行
line 2
。找到后,file1.txt
立即输出 的内容并删除原行。使用
sed -i
将使更改内联file2.txt
(不推荐)。使用 vi
转到该行,然后:
当前行替换为文件内容。