- 论坛徽章:
- 780
|
本帖最后由 Herowinter 于 2014-03-06 12:44 编辑
@kaize0409@jason680@rdcwayx
如果你要一个正则实现懒惰匹配,你可以参考版主和Jason的perl代码;
如果你非要在awk中实现,你可以参考下面的代码,不过这种做法扩展
性不是很好,仅仅针对你这个问题。- awk '{s="";while((start=match($0,/{#/))>0){end=match($0,/#}/);if(end>start){s=s""substr($0,1,start-1)"+";$0=substr($0,end+2)}else break};print s$0}' i
- +
- +
- +a#}
- fdss+fdjsf+dfs
- fdss+fdjsf+dfs
- fdss+dfs
- fdss+fdjsf+dfs
- fdss+fdjsf+dfs
- fdss+fdjsf+dfs
- fff{#
- ggg#}
- hhhrrrr
复制代码- cat i
- {#a#a#}
- {#a}a#}
- {#a#}a#}
- fdss{#sdjas#}fdjsf{#dsfjs#}dfs
- fdss{#sd#jas#}fdjsf{#ds#fjs#}dfs
- fdss{#sdjas#fdjsf#dsfjs#}dfs
- fdss{#sd#jas#}fdjsf{#ds#fjs#}dfs
- fdss{#sd#jas#}fdjsf{#ds#fjs#}dfs
- fdss{#sdjas#}fdjsf{#dsfjs#}dfs
- fff{#
- ggg#}
- hhhrrrr
复制代码 |
|