使用sed针对模式插入文件的内容

时间:2018-03-27 18:32:11

标签: shell sed grep

我希望在模式匹配后插入文件的内容。我尝试了以下命令,但它无法正常工作

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

我错过了任何参数吗?怎么做到这一点?

2 个答案:

答案 0 :(得分:2)

您需要-i才能进行替换in place,您还可以使用.bak制作.bak备份文件

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

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

答案 1 :(得分:0)

你可以运行以下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