- 论坛徽章:
- 145
|
本帖最后由 jason680 于 2015-07-22 12:56 编辑
回复 1# kinger7777
What You Want Is What You Code(WYWIWYC)
>> ...匹配特定字符是2015002要把这字符所在的行及前三行的{YES}替换成{NO}
$ awk -vb=3 -vk="2015002" '$0~k{for(n=0;n<=b;n++)ch[NR-n]=1}{a[NR]=$0}END{for(n=1;n<=NR;n++){if(ch[n])if(a[n]~"YES")gsub("YES","NO",a[n]);else gsub("NO","YES",a[n]);print a[n]}}' FILE
bug:[aaaxxx]test1
set{YES}
bug:[aaasss]set{YES}
bug:[aaacd]888
bug:[aaadc]log:2015001 set{YES}
bug:[aaaxxx]log=2015001 set{YES}
bug:[aaaxxx]test1
set{NO}
bug:[aaasss]set{NO}
bug:[aaacd]888
bug:[aaadc]log:2015002 set{NO}
bug:[aaaxxx]log:2015002 set{NO}
bug:[aaaxxx]test1
set{YES}
bug:[aaasss]set{YES}
bug:[aaacd]888
bug:[aaadc]log:2015003 set{YES}
bug:[aaaxxx]log:2015003 set{YES}
|
|