주어진 단어가 포함 된 파일을 재귀 적으로 고유하게 나열하고 싶습니다.

: “check”라는 단어를 확인하는 것은 보통 grep입니다.

$ grep check * -R 

하지만이 단어가 많이 나오기 때문에 출력이 많이 나옵니다. 따라서 주어진 검색어가 포함 된 파일 이름을 나열하면됩니다. findxargs에 대한 몇 가지 트릭으로 충분할 것 같지만 확실하지 않습니다.

아이디어가 있습니까?

답변

-l 또는 --files-with-matches 옵션은 다음과 같이 문서화되어 있습니다.

정상 출력 억제; 대신 출력이 일반적으로 인쇄되는 각 입력 파일의 이름을 인쇄하십시오. 첫 번째 경기에서 스캔이 중지됩니다. (-l는 POSIX에서 지정합니다.)

따라서 예를 들어 다음을 사용할 수 있습니다.

$ grep check * -lR 

댓글

  • MSYS에서도 작동합니다. 좋습니다!
  • grep -rl "text to find" "/usr/share"를 사용했고 훌륭하게 작동했습니다!

답변

find . -type f -exec grep -l check {} + 

최신 버전의 GNU에서 -R 옵션을 사용하고 싶지는 않을 것입니다. div id = “30ccdcbc3b”>

는 디렉토리 내림차순시 심볼릭 링크를 따릅니다. 버전 2.12 (2012 년 4 월) 이후 더 이상 심볼릭 링크를 따르지 않는 -r 옵션을 대신 사용합니다.

귀하의 grep이 GNU 버전이 아니거나 2.12 이전 버전이거나 코드를 블리딩 에지가 아닌 GNU 시스템으로 이식해야하는 경우 find 명령을 사용하세요.

그렇지 않으면 다음을 수행 할 수 있습니다.

grep -rl check . 

* (현재 디렉토리 (및 현재 디렉토리에만 있음)에서 숨겨진 파일을 생략하고 이름이 -로 시작하는 파일에 문제를 일으킬 수 있으므로), 전달하지 마십시오. 인수 후 옵션은 보장되지 않습니다. 환경에 따라 작동하도록되어 있으며 휴대용이 아닙니다.

답변

다음을 시도하십시오.

find . -type f | xargs grep -c check $1 | grep -v ":0" 

grep 플래그의 경우 …

-c는 파일 이름 뒤에 : 및 주어진 파일에 검색 문자열이 나타나는 횟수를 나타내는 숫자를 반환합니다.

-v는 첫 번째

검색, 결과가없는 파일을 필터링하고 결과가 0이 아닌 파일 만 인쇄합니다.

댓글

  • 이름에 :0가 포함 된 파일 (또는 디렉터)이있는 경우 위음성이 표시됩니다. ' grep -v ':0$'를 수행하는 것이 좋습니다. 심지어 줄 바꿈이 포함 된 경로 이름에서 질식합니다.

Answer

grep -lR "text-to-find" <where-to-find>도 잘 작동합니다.

예 : grep -lR "NAVIGATE" . .NAVIGATE 단어를 찾습니다. div> 현재 디렉토리에 있습니다.

Answer

grep -rin “whatToFind”locationToFInd

예 $ grep -rin “vihaan”.

파일 이름과 “vihaan”이 포함 된 해당 줄 “.”을 재귀 적으로 검색하고 나열합니다. 현재 디렉토리를 나타냅니다.

답변

find . -type f | grep "keyword" * 

현재 디렉토리에서 검색합니다. 루트에서 조회하려면 .

대신 /를 지정하십시오.

Answer

 grep -rli trim \` find . -name *.q \` 

.q 파일 목록에 trim

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다