Захват текста между фигурными фигурными скобками в предварительно обработанном файле C

Я работаю с предварительно обработанным исходным файлом C. Я хочу извлечь одну функцию для дополнительной обработки. Я могу найти начало конкретной функции с помощью:

gcc -DNDEBUG -march=native -E source.c > source.pre BEGIN=$(grep -n 'static inline int some_function' source.pre | cut -f 1 -d ':') 

После выполнения выше, у меня есть номер строки, где начинается функция. В этом случае его 7812.

У меня возникли проблемы с созданием способа захвата текста между фигурными скобками функции C ( { и } ). Основываясь на средстве вычитания строк текстового файла , я думаю, что это сводится к проблеме нахождения непосредственной закрывающей скобки ( } ).

Как найти ближайшую закрывающую скобу? Или как я могу захватить текст между фигурными фигурными скобками в предварительно обработанном файле C?

One Solution collect form web for “Захват текста между фигурными фигурными скобками в предварительно обработанном файле C”

Если предположить, что в источнике нет ничего глупого, что могло бы поместить заблуждение } на строку, попробуйте sed .

 sed -n '/^static inline int some_function(/,/^}$/p' source.pre 
  • shell-скрипт для выполнения текстовой обработки структуры данных текстовых файлов и небольших изменений содержимого
  • Полоскать наиболее часто используемые слова из текста
  • Соответствие значений и суммы печати на основе повторяемости в awk
  • Как распечатать определенное условие столбца с помощью awk?
  • Итерация через csv и печать определенных элементов
  • Добавить первый столбец в файл
  • Как добавить заголовок лицензии рекурсивно для всех файлов .h и .cpp в каталоге
  • Как сделать возвращаемое значение grep без запятой
  • awk не производит желаемый выход
  • Инструмент для создания текстовых файлов из шаблона
  • Групповая команда uniq?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.