2011-01-30 100 views
0

Discount的删除评论configure.sh脚本在config.h文件的开始产生一些动态评论:检测并从开始的文件

/* 
* configuration for markdown, generated Fri 28 Jan 2011 16:13:46 EST 
* by [email protected] 
*/ 
#ifndef __AC_MARKDOWN_D 
#define __AC_MARKDOWN_D 1 

[...] 

其中嵌入一个Git项目里面打折的时候为一些无用的补丁制作,所以我在提交之前删除它们。我想自动化configure.sh的输出,所以我可以更快地升级项目内的折扣,但我对awk/sed不太熟悉。我有这行我的脚本:

tail -n +5 config.h > ../discount-config/config.h 

但我想更多的东西面向未来,以取代这一点,所以它不会破坏原文件,如果更高版本的折扣有更多/小于4条评论。

+0

你就不能修改`configure.sh`不写评论? – SilentGhost 2011-01-30 23:23:52

+1

为什么你想要在存储库中存储生成的文件?在检出项目之后,存储可以运行的脚本以生成文件通常会更好。 – ssmir 2011-01-31 00:36:47

回答

1

如何使用sed

例如,如果你可以假设顶部评论将总是从文件的第一行:

$ cat test.h 
/* 
* configuration for markdown, generated Fri 28 Jan 2011 16:13:46 EST 
* by [email protected] 
*/ 
#ifndef __AC_MARKDOWN_D 
#define __AC_MARKDOWN_D 1 

/* 
* Test 
*/ 

int x; 
$ sed '1,/^ *\*\/ *$/ { d; }' test.h 
#ifndef __AC_MARKDOWN_D 
#define __AC_MARKDOWN_D 1 

/* 
* Test 
*/ 

int x;