2012-07-27 2 views
0

Мое первоначальное требование - вставить печать при вводе каждой функции. Поскольку это очень сложно, с регулярным выражением, я обнаруживаю частичное решение, для выполнения того же, мне нужно вставить printf после моего имени функции. и я предполагаю, что это должна быть одна строка после имени функции. поэтому, когда бы ни были определения моих функций (здесь шаблон является именем моей функции), печать должна появиться на второй строке после этого имени функции (первая строка может быть фигурной скобкой, поэтому я выбрал вторую строку).Вставьте печать на n-ю строку после рисунка

ответ

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; 
} 
+0

О Боже, благодарю U, спасибо у очень много. это работает нормально. Я никогда не думал, что любой ответит на такой сложный вопрос. Еще раз спасибо – jaison

+0

Одна проблема --- мне нужно отредактировать существующий файл .., вместо того чтобы показывать результат на экране, он должен заменить исходный файл. в противном случае нет смысла использовать это. приветствует – jaison

Смежные вопросы