전처리된 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