여러 줄의 grep을 표시하는 방법

여러 줄의 grep을 표시하는 방법

다음 코드가 있습니다.

int val

nameof_function();

위의 코드는 filename.txt 파일에 있습니다. 다음을 사용하여 파일에서 일련의 줄을 찾으려고 합니다.

grep "int val.*\n.*(" filename.txt

하지만 여러 줄에서는 작동하지 않습니다.

나도 시도했다

awk '/int val/,/\(/' filename.txt 

여기서는 출력에 파일 이름이 표시되지 않습니다.

grep출력에서 파일 이름을 찾을 수 있지만 다음을 사용하는 경우 여러 줄을 검색할 수 없습니다.

다음과 같은 출력이 필요합니다.

filename.txt:int val nameof_function

누구든지 도와주세요

답변1

int val소스 파일에 한 줄로 구분된 기능이 포함되어 있는 경우 grep의 출력을 조정하여 아래 두 줄의 내용을 찾아 출력하도록 하면 됩니다 .

다음과 같을 것이다

grep -A 2 "int val" *.txt

관련 정보