2011-01-30 2 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 

[...] 

Что делает для некоторых бесполезных патчей при встраивании скидки внутри проекта мерзавца, поэтому я удаляю их перед совершением. Я хочу автоматизировать вывод с configure.sh, чтобы быстрее обновлять скидку внутри проекта, но я не так хорошо разбираюсь в awk/sed. Я получил эту строку в моем скрипте:

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

Но я хотел бы, чтобы заменить это нечто большее будущее доказательство, поэтому он не будет искажать файл, если более поздние версии дисконта больше/меньше 4 строки комментариев.

+0

вы не можете просто изменить 'configure.sh' не писать, что комментарий? – SilentGhost

+1

Почему вы хотите сохранить сгенерированный файл в репозитории? Обычно лучше сохранить скрипт, который вы можете запустить, чтобы сгенерировать файл после проверки вашего проекта. – ssmir

+0

@SilentGhost 'configure.sh' является частью git-репозитория скидки, я не хочу изменять это – Tim

ответ

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; 
+0

Спасибо! Я думал, что будет такое элегантное решение, но я не знал достаточно о том, чтобы написать его. – Tim

Смежные вопросы