我想在模式匹配之后插入文件的内容。我尝试了以下命令,但它不起作用
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