检测并删除文件开头的注释

时间:2011-01-30 23:12:20

标签: regex git automation code-comments

Discountconfigure.sh脚本会在config.h文件的开头生成一些动态评论:

/*
 * configuration for markdown, generated Fri 28 Jan 2011 16:13:46 EST
 * by tim@Orion.local
 */
#ifndef __AC_MARKDOWN_D
#define __AC_MARKDOWN_D 1

[...]

在git项目中嵌入折扣时会出现一些无用的补丁,所以我在提交前将其删除。我希望自动化configure.sh的输出,这样我就可以更快地升级项目内的折扣,但我不是那么精通awk / sed。我的剧本中有这一行:

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

但是我想用更具前瞻性的东西来代替它,所以如果以后版本的折扣有多于/少于4行的评论,它就不会破坏文件。

1 个答案:

答案 0 :(得分:1)

如何使用sed

例如,如果您可以假设顶部注释将始终从文件的第一行开始:

$ cat test.h
/*
 * configuration for markdown, generated Fri 28 Jan 2011 16:13:46 EST
 * by tim@Orion.local
 */
#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;