在图案后的第n行插入打印件

时间:2012-07-27 17:44:06

标签: sed

我原来的要求是在每个功能的入口处插入一个打印件。由于非常困难,使用正则表达式,我找到了部分解决方案,为了实现相同的目的,我需要在我的函数名后插入printf。我假设它应该是函数名后的一行。所以,无论我的函数定义(这里的模式是我的函数名称)来了,打印应该在第二行后面的函数名称(第一行可以是大括号。这就是我选择第二行的原因)

1 个答案:

答案 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;
}