我希望在模式匹配后插入文件的内容。我尝试了以下命令,但它无法正常工作
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
我错过了任何参数吗?怎么做到这一点?
答案 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