Обнаружение и удаление комментариев в начале файла - PullRequest
0 голосов
/ 31 января 2011
Сценарий

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 project, поэтому я их удаляю перед коммитом.Я хочу автоматизировать вывод из configure.sh, чтобы я мог быстрее обновить скидку внутри проекта, но я не очень хорошо разбираюсь в awk / sed.У меня есть такая строка в моем сценарии:

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

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

1 Ответ

1 голос
/ 31 января 2011

Как насчет использования 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;
...