find… -exec grep으로 파일 이름과 줄 번호를 모두 반환하는 방법은 무엇입니까? 이름과 줄 번호를 어떻게 반환합니까? 하나의

을 사용할 때 find문자열을 검색 할 때 파일 이름과 줄 번호를 어떻게 반환합니까? 하나의 명령으로 파일 이름을 반환하고 다른 명령과 줄 번호를 반환 할 수는 있지만 조합 할 수는 없습니다.

파일 이름 : find . -type f -exec grep -l 'string to search' {} \;

줄 번호 : find . -type f -exec grep -n 'string to search' {} \;



답변

명령 행 스위치 는 파일이 하나만 있어도 파일 이름을 -H강제 grep로 인쇄합니다.

% grep -n 7 test.in
7:7
% grep -Hn 7 test.in
test.in:7:7

   -H, --with-filename
          Print the filename for each match.

같은 것을 참고 코지로는 말한다 주석 , 이것은 POSIX 표준의 일부가 아닙니다; GNU와 BSD grep에 있지만 일부 시스템에는 없을 수도 있습니다 (예 : Solaris).


답변

find . -type f -exec grep -n 'string to search' /dev/null {} +

(또는 GNU grep의 경우 -H옵션을 참조하십시오 )


답변

grep이 재귀 -r플래그를 지원하면 요청이 해결됩니다.

grep -rn "String to search " *