【发布时间】:2013-07-02 09:23:47
【问题描述】:
我有一个格式如下的文件:
========================================================
line1line1line1line1line1line1line1line1line1
line2-anything could be here
...anything again
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
========================================================
abc abc abc bacbk kjhhjkh
line2-anything could be here SOME_STRING
...anything again
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
我想搜索并替换块(定义在=====* 和++++* 之间)为abc,其中SOME_STRING 不存在。例如,上面的文件看起来像:
========================================================
abc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
========================================================
abc abc abc bacbk kjhhjkh
line2-anything could be here SOME_STRING
...anything again
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
因为块 1 没有 SOME_STRING。
我可以使用搜索模式获取块
========================================================\_.\{-\}++++++++++++++++++++++++++++++++++++++++++++++++++++++++
但是我想 grep 这个模式搜索的结果,如果 grep 返回 1(未找到匹配项),则将块替换为 abc。
有可能吗?提前致谢。
【问题讨论】: