【发布时间】:2011-03-22 20:53:54
【问题描述】:
我有一个如下所示的输入 C 文件 (myfile.c):
void func_foo();
void func_bar();
//supercrazytag
我想用shell命令插入新的函数原型,这样输出就变成了:
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 "....." 使用相同的模式也不起作用。
【问题讨论】:
-
你不应该在这里使用
sed,因为它会逐行读取,awk是一个更好的解决方案。选择一个可以完成您的任务并且做得很好的工具,因为sed没有。
标签: perl sed newline replace multiline