使用SED插入文件的内容



我想在模式匹配之后插入文件的内容。我尝试了以下命令,但它不起作用

sed '/ghi()/ r file2.txt' file1.txt

file1.txt的内容是:

abc
def
ghi()
jkl

file2.txt的内容是:

hello world!
my name is xyz
i live in abc city

所需的输出:我希望file1.txt的内容成为:

abc
def
ghi()
hello world!
my name is xyz
i live in abc city
jkl

我是否缺少任何参数?如何实现这一目标?

您需要-i进行替换in place,并且还可以使用.bak进行.bak备份文件

sed -i.bak '/ghi()/ r file2.txt' file1.txt

它将更改file1.txt内容,并为备份创建file1.txt.bak

您可以在awk之后运行,可能会帮助您。

awk '/ghi()/{print;system("cat file2.txt");next} 1' file1.txt

也遵循sed也对我来说也很好,我有GNU sed 4.2.1

sed '/ghi()/r file2.txt' file1.txt

最新更新