如何在2-3行匹配模式之前插入一行

时间:2016-06-17 19:57:56

标签: linux bash shell awk sed

输入文件:文件

aaaa    
bbbb  
cccc  
dddd  
ffff  *  
==================  
Schedule  
end of file

我想在2-3行'schedule'之前插入zzzz 但它必须检查该行上是否有任何单词可用。如果可用,则将zzzz插入下一行

输入文件:文件

aaaa    
bbbb  
cccc  
dddd  
ffff  * 
zzzz 
==================  

Schedule  
end of file 

1 个答案:

答案 0 :(得分:0)

目前尚不清楚before 2-3 lines究竟意味着什么,但我认为这可能是你想要的:

$ cat tst.awk
NR==FNR {
    if (/Schedule/) {
        tgts[NR-2]
    }
    next
}
{ print }
(FNR in tgts) && /ffff/ { print "zzzz" }

$ awk -f tst.awk file file
aaaa
bbbb
cccc
dddd
ffff  *
zzzz
==================
Schedule
end of file