SED找到第一个图案的行,然后在第二个图案的行前插入一行

时间:2015-05-29 02:56:12

标签: sed

示例文件1:

//MODIFICATIONS:  
//comment  
//comment  
//  
</IF>  

示例文件2:

MODIFICATIONS:
comment without leading //
comment without leading //
</IF>

示例文件3

MODIFICATIONS:
comment without leading //
comment without leading //

</IF>

我需要更新300多个看起来像上述变体的文件。我认为最简单的解决方案是SED命令:

  • 查找以&#34; MODIFICATIONS结尾的行:&#34; (我已经确认&#34;修改:&#34;只在每个文件中出现一次
  • 然后查找下一个</IF&gt; (会有很多,我只想要第一个)并在此行之前添加一条新的注释行。

理想情况下,这可以针对不包含&#34; MODIFICATIONS的文件运行:&#34;什么都不做这些文件位于多个嵌套文件夹中,因此递归运行会有很大帮助。

我在Mac OS上也可以访问Windows。

提前致谢。

1 个答案:

答案 0 :(得分:0)

sed -i '/MODIFICATIONS:/{:l;n;/<\/IF>/{a\
comment
b};bl}' input

给出:

//MODIFICATIONS:  
//comment  
//comment  
//  
</IF>  
comment