Assumindo que não há nada de maluco na fonte que possa colocar um stray }
em uma linha, tente sed
.
sed -n '/^static inline int some_function(/,/^}$/p' source.pre
Estou trabalhando com um arquivo de origem C pré-processado. Eu quero extrair uma função para processamento adicional. Eu posso encontrar o início da função específica com:
gcc -DNDEBUG -march=native -E source.c > source.pre
BEGIN=$(grep -n 'static inline int some_function' source.pre | cut -f 1 -d ':')
Após o acima executado, eu tenho um número de linha onde a função começa. Neste caso, o seu 7812.
Estou tendo problemas para criar uma maneira de capturar o texto entre as chaves ( {
e }
) da função C. Com base em Extrair a seção intermediária de linhas de um arquivo de texto , acho que isso está reduzindo a um problema de encontrar a chave de fechamento imediata ( }
).
Como encontrar a chave de fechamento imediata? Ou como faço para capturar o texto entre chaves no arquivo pré-processado C?
Tags bash text-processing