C 전처리기 파일의 중괄호 사이에 텍스트 캡처

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 전처리기 파일에서 중괄호 사이의 텍스트를 캡처하는 방법은 무엇입니까?

답변1

}소스 코드에 자체적으로 한 줄에 스트레이를 넣을 수 있는 이상한 점이 없다고 가정하고 시도해 보세요 sed.

sed -n '/^static inline int some_function(/,/^}$/p' source.pre

관련 정보