Discount的configure.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行的评论,它就不会破坏文件。
答案 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;