我原来的要求是在每个功能的入口处插入一个打印件。由于非常困难,使用正则表达式,我找到了部分解决方案,为了实现相同的目的,我需要在我的函数名后插入printf。我假设它应该是函数名后的一行。所以,无论我的函数定义(这里的模式是我的函数名称)来了,打印应该在第二行后面的函数名称(第一行可以是大括号。这就是我选择第二行的原因)
答案 0 :(得分:0)
1
打印每一行。
awk -v fn=main '$2==fn{f=1} f{s++} s==3{print " printf(\"%i\", 10);"; s=f=0} 1' foo.txt
<强> foo.txt的
int main
{
return 0;
}
<强>输出
int main
{
printf("%i", 10);
return 0;
}