我在一个项目中处理版权标题是强制性的。所有文件都有它们,但最近标题的指导方针已更改,因此需要更新。我正在Linux平台上工作(但也可以通过Windows访问文件)。有些文件有新的标题(但需要在年份字段中更新),有些文件有旧标题,有些文件以非常粗糙的方式使用,不符合标准(是的,不幸的是通过审核),有些文件没有&# 39;完全没有(是的,这些也经过了审查)。
因此我有三个要求:
将旧标题更改为更新的标题以及更新年份
对于那些有新标题的人,他们的日期(更确切地说是年份)需要更新。
- 的人添加标题 醇>
为没有任何
我不想对项目中的所有文件执行此操作,只是为了我的修复而更改的文件。换句话说,只有git status输出中显示的文件。更新日期时可能出现的情况可能是:
- 2011-2014,2016 ==> 2012-2014,2016-2017
- 2011-2012,2014-2015 ==> 2011-2012,2014-2015,2017
- 2011-2016 ==> 2012年至2017年
- 2011-2017 ==>没有变化
醇>
它也是项目中的.java,.cpp,.c,.h和.xml文件。
我看到this但它似乎只是添加标题。我对sed和awk并不太精通。我经历了this,但它假定所有文件的标准开始和this,但它也涉及一个公共标题。有可能这样做吗?
编辑:我接受了@Hoall'回答并手动完成,因为使用sed这样做现在看起来太麻烦了!答案 0 :(得分:1)
在linux下你可以做这样的事情:
for i in `git diff --name-only --cached`; do echo $i; done
用sed,awk或更换echo命令替换文件中的完整标题。
编辑:
对于sed部分,请参阅sed: replace a block of text