正则表达式 - 在第一次匹配后附加文件内容

时间:2015-02-26 17:55:50

标签: linux awk sed text-processing

说我有以下几种文件:

file1.txt

a a c
b b c
c c c
d d c
e e c
a a c
b b c
c c c
d d c
e e c

file2.txt

—————
—————
—————

如何从file2.txt获取内容,以便我最终得到file1.txt

a a c
b b c
c c c
—————
—————
—————
d d c
e e c
a a c
b b c
c c c
d d c
e e c

...不仅仅是在第3行(c c c的第一行)之后添加内容。

2 个答案:

答案 0 :(得分:3)

使用GNU sed(该命令需要分布在多行中):

sed '0,/c c c/ {
    /c c c/r file2.txt
}' file1.txt
a a c
b b c
c c c
—————
—————
—————
d d c
e e c
a a c
b b c
c c c
d d c
e e c

答案 1 :(得分:3)

awk 'NR==FNR{buf = buf $0 RS;next} {print} /c c c/ && !done{ printf "%s", buf; done=1  }' file2.txt file1.txt