2011-01-30 101 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;