아래와 같이 와일드카드와 함께 grep을 사용하는 경우
grep -in github */*
각 디렉토리에는 grep
다음과 같은 많은 메시지가 표시됩니다.
grep: dir1/dir2: Is a directory
이러한 메시지를 표시하지 않으려면 어떻게 해야 합니까?
놀랍게도 해당 플래그를 사용하면 --exclude-dir
작동하지 않습니다.
저는 MacOS에서 사용하고 있습니다 grep (BSD grep) 2.5.1-FreeBSD
.
답변1
-d skip
grep 건너뛰기 디렉터리를 만듭니다.
grep -in -d github 건너뛰기/
~에 따르면이 MaxOS 매뉴얼 페이지이 옵션은 MacOS grep에서 작동합니다. 이것이 MacOS grep에서 작동하지 않는 것으로 판명되면 설치할 수 있습니다Homebrew MacOS 패키지 관리자그런 다음 Homebrew를 사용하여 설치하십시오.grep의 GNU 버전, GNU grep이 이를 지원하기 때문입니다 -d skip
(이 경우 GNU grep이 포함된 디렉토리를 PATH
환경 변수의 첫 번째 디렉토리로 설정해야 함).
답변2
find
사용찾다grep
다음으로 파일 병합그램/무게/p파일 내에서:
find . -mindepth 2 -maxdepth 2 -type f -exec grep -in github {} \;
각 도구의 이름에는 그 목적에 대한 중요한 단서가 있습니다 :-).