45 을 사용할 때 find문자열을 검색 할 때 파일 이름과 줄 번호를 어떻게 반환합니까? 하나의 명령으로 파일 이름을 반환하고 다른 명령과 줄 번호를 반환 할 수는 있지만 조합 할 수는 없습니다. 파일 이름 : find . -type f -exec grep -l 'string to search' {} \; 줄 번호 : find . -type f -exec grep -n 'string to search' {} \; grep find — 대니 조리스 소스
51 명령 행 스위치 는 파일이 하나만 있어도 파일 이름을 -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). — 케빈 소스 4 이 -H플래그 grep는 비표준 GNU 확장 이라는 플래그를 지적하고 비 GNU 시스템에 대한 대체 접근법을 제시 함으로써 개선 될 수 있습니다 . — kojiro
22 find . -type f -exec grep -n 'string to search' /dev/null {} + (또는 GNU grep의 경우 -H옵션을 참조하십시오 ) — 스테판 샤 첼라 소스 +와 -H 모두 훌륭하게 작동합니다. 감사합니다! — Danny_Joris 그리고이 대답 관련 : unix.stackexchange.com/questions/3682/... — Danny_Joris 4 +1 맞습니다. grep파일 이름 인수가 여러 개 있으면 일치하는 파일 이름이 출력됩니다. 영리한! — kojiro
-1 grep이 재귀 -r플래그를 지원하면 요청이 해결됩니다. grep -rn "String to search " * — 어치 소스 1 사실이지만, 이것이 기존 답변에 추가되는 것을 보지 못합니다. — 와일드 카드 그리고 현재 디렉토리에 하나의 (점이 아닌) 파일이 있으면 파일 이름이 표시되지 않습니다. — G-Man, 'Reinstate
-H
플래그grep
는 비표준 GNU 확장 이라는 플래그를 지적하고 비 GNU 시스템에 대한 대체 접근법을 제시 함으로써 개선 될 수 있습니다 .