用awk模拟sed读取命令

用awk模拟sed读取命令

我想刺激使用sed

sed  '3r awk.scr' awk.script

awk.scr

a
b
c 
d 
e 
f

awk.script作为:

hello there is
hello i'am there is
hello sdfdf
dfdfdf aads
23213 3 434

在这里使用awk

awk 'BEGIN {while((getline gf < "awk.script") > 0) {print gf; if(++i > 2) break;} {while((getline bf < "awk.scr")> 0 ) { print bf}}}'

但它太复杂了,有没有简单的方法。

期望的输出:

hello there is
hello i'am there is
hello sdfdf
a
b
c
d
e
f

答案1

更简单的方法可以是:

awk 'FNR == 3 {print;while(getline < "awk.scr") print; next};1' awk.script

或者:

awk 'FNR == 4 {while(getline < "awk.scr") print};1' awk.script

使用这种方法,您只需要关心awk.scr, awkwillawk.script为您处理。

相关内容