我正在运行商业开源CRM,这对于保留在VCS中是一件痛苦的事。在每个文件的顶部都没有"开源" ...他们会像这样写一个copywrite:
/***********************************************************************************
* Copyright (C) 2011-2015 Company Inc. All Rights Reserved.
*
* blah blah blah that changes every so often
*
******a variable number of stars*****************/
每当他们更改版权文本/日期时,我看到的每个文件都会在git中更改。
所以我的问题 我如何做到这一点(https://stackoverflow.com/a/22171275/140541)将删除版权阻止...只是因此我不必在我的git中看到它并且在它改变时不必担心它?
谢谢!
更新问题。
我真的需要一个sed语句来解决这个问题:
<?php
/***************************************************************
* Copyright (C) 2011-2015 Company Inc. All Rights Reserved.
*
* blah blah blah that changes every so often
*
******************************/
some code
/***
* foo here
*/
进入这个:
<?php
/***************************************************************
* some text here
******************************/
some code
/***
* foo here
*/
但只有当文件中的第一条评论带有“#34;版权所有&#34;在它。
答案 0 :(得分:1)
正如我反复说的那样 - sed不是涉及多行的任何事情。这就是awk被发明要处理的事情:
$ cat tst.awk
inCmt && /\*\// {
if (cmt ~ /Copyright/) {
sub(/\n.*/,"\n * some text here\n",cmt)
}
$0 = cmt $0
inCmt=0
done=1
}
!done && /\/\*/ { inCmt=1 }
inCmt { cmt = cmt $0 ORS; next }
{ print }
$ cat file1
<?php
/***************************************************************
* Copyright (C) 2011-2015 Company Inc. All Rights Reserved.
*
* blah blah blah that changes every so often
*
******************************/
some code
/***
* foo here
*/
$ awk -f tst.awk file1
<?php
/***************************************************************
* some text here
******************************/
some code
/***
* foo here
*/
$ cat file2
<?php
/***************************************************************
* blahblahbla (C) 2011-2015 Company Inc. All Rights Reserved.
*
* blah blah blah that changes every so often
*
******************************/
some code
/***
* foo here
*/
$ awk -f tst.awk file2
<?php
/***************************************************************
* blahblahbla (C) 2011-2015 Company Inc. All Rights Reserved.
*
* blah blah blah that changes every so often
*
******************************/
some code
/***
* foo here
*/