SED查找第一种图案的线条,然后在第二种图案的线条之前插入一条线条
示例文件1:SED查找第一种图案的线条,然后在第二种图案的线条之前插入一条线条,sed,Sed,示例文件1: //MODIFICATIONS: //comment //comment // </IF> //修改: //评论 //评论 // 示例文件2: MODIFICATIONS: comment without leading // comment without leading // </IF> 修改: 不置可否// 不置可否// 样本文件3 MODIFICATIONS: comment without leading // co
//MODIFICATIONS:
//comment
//comment
//
</IF>
//修改:
//评论
//评论
//
示例文件2:
MODIFICATIONS:
comment without leading //
comment without leading //
</IF>
修改:
不置可否//
不置可否//
样本文件3
MODIFICATIONS:
comment without leading //
comment without leading //
</IF>
修改:
不置可否//
不置可否//
我需要更新300多个文件,看起来像上面的变化。我认为最简单的解决方案是使用SED命令:
- 查找以“MODIFICATIONS:”结尾的行(我已经确认“MODIFICATIONS:”在每个文件中只出现一次)
- 然后查找下一个
(将会有很多,我只想要第一个),并在这一行之前插入新的注释行
sed-i'/MODIFICATIONS://{:l;n;//{a\
sed -i '/MODIFICATIONS:/{:l;n;/<\/IF>/{a\
comment
b};bl}' input
评论
b} ;bl}输入
给出:
//修改:
//评论
//评论
//
评论
您正在查找第一个引号?以及要插入的注释行是什么?抱歉,格式混乱。正在查找要插入的注释行到底是什么?注释行是“Patch123 29\05\2015 A”。用户迁移到141“抱歉,注释”是一个占位符,每个文件都不相同。我真的认为它需要查找并在其前面放置一些内容。您的问题对于所需的输出不清楚。是否要对每个文件放置相同的注释,但每个批的注释都不同?要插入的注释是“Patch123 29\05\2015 a.用户迁移到141”这需要出现在“修改:”之后出现的“”之前的行上
//MODIFICATIONS:
//comment
//comment
//
</IF>
comment