У меня есть входной файл C (myfile.c), который выглядит так:
void func_foo();
void func_bar();
//supercrazytag
Я хочу использовать команду оболочки для вставки новых прототипов функций, чтобы результат был следующим:
void func_foo();
void func_bar();
void func_new();
//supercrazytag
До сих пор у меня не получалось использовать SED или PERL. Что не сработало:
sed 's|\n\n//supercrazytag|void func_new();\n\n//supercrazytag|g' < myfile.c
sed 's|(\n\n//supercrazytag)|void func_new();\1|g' < myfile.c
Использование тех же шаблонов с perl -pe "....." тоже не сработало.
Что мне не хватает? Я пробовал много разных подходов, включая this и this и that.
sed
, поскольку он читает строку за строкой,awk
- гораздо лучшее решение. Выберите инструмент, который выполняет вашу задачу и делает ее хорошо, для этогоsed
нет. - person Anders   schedule 29.07.2010