답변:
find . -type f -exec grep -l check {} +
디렉토리를 내릴 때 -R
최신 버전의 GNU에서 grep
심볼릭 링크를 따르는 옵션 을 사용하고 싶지 않을 것입니다 . -r
버전 2.12 (2012 년 4 월)부터 더 이상 심볼릭 링크를 따르지 않는 옵션을 대신 사용하십시오 .
grep이 GNU가 아니거나 버전 2.12보다 오래된 경우 또는 비 -Bedge-GNU 시스템에 이식 가능한 코드가 필요한 경우 find
위 명령을 사용하십시오 .
그렇지 않으면 다음을 수행 할 수 있습니다.
grep -rl check .
사용하지 마십시오 *
(현재 디렉토리 (및 현재 디렉토리에서만)에서 숨겨진 파일을 생략하고 이름이으로 시작하는 파일에 문제를 일으킬 수 있음 -
), 인수에 따라 옵션을 전달하지 마십시오 환경과 휴대용이 아닙니다.
이 시도:
find . -type f | xargs grep -c check $1 | grep -v ":0"
에 관해서는 grep
플래그 ...
-c
주어진 파일에 검색 문자열이 몇 번 나타나는지 나타내는 파일 이름과 :을 반환합니다.
-v
첫 번째 grep
검색 결과를 가져 와서 결과가 0 인 파일을 필터링하고 결과가 0이 아닌 파일 만 인쇄합니다.
:0
. 하는 것이 좋습니다 grep -v ':0$'
. 그럼에도 불구하고 줄 바꿈이 포함 된 경로 이름에 질식합니다.
find . -type f | grep "keyword" *
현재 디렉토리에서 검색하십시오. 루트에서 조회하려면 /
대신 지정하십시오..
grep -lR "text-to-find" <where-to-find>
또한 잘 작동합니다.
예를 들어 현재 디렉토리에서 grep -lR "NAVIGATE" .
단어 NAVIGATE
를 찾을 수 .
있습니다.