我有许多
形式的多行文字文件222 333 444 _benny
300 400 500 _andrew
311 411 511 _reusee
322 433 544 _benny
500 500 600 _andrew
我需要从_benny取出字符串到_andrew并在它们之间插入一个带_yahoi的字符串,以便输出变为
222 333 444 _benny
250 321 422 _yahoii
300 400 500 _andrew
我尝试了awk '/_benny/,/_andrew/' filename
但它只显示文字
答案 0 :(得分:0)
这个awk脚本
awk '/_benny/,/_andrew/ { if ( $0 ~ /_benny/ ) { print $0; print "250 321 422 _yahoii"; next } { print } }' filename
将产生(假定的)期望结果
222 333 444 _benny
250 321 422 _yahoii
300 400 500 _andrew
322 433 544 _benny
250 321 422 _yahoii
500 500 600 _andrew
根据@ ed-morton的评论避免/start/,/end/
您可以尝试这样做:
awk '{ if ( $0 ~ /_benny/ || $0 ~ /_andrew/ ) { if ( $0 ~ /_benny/ ) { print $0; print "250 321 422 _yahoii"; next } { print } } }' filename