
다음과 같이 와일드카드와 함께 grep을 사용할 때
grep -in github */*
각 디렉토리에 대해 grep
다음과 같은 많은 메시지가 표시됩니다.
grep: dir1/dir2: Is a directory
이러한 메시지를 표시하지 않는 방법은 무엇입니까?
--exclude-dir
놀랍게도 플래그를 사용하는 것이 작동하지 않습니다.
저는 grep (BSD grep) 2.5.1-FreeBSD
MacOS에서 사용하고 있습니다.
답변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
과g/re/p파일 내에서:
find . -mindepth 2 -maxdepth 2 -type f -exec grep -in github {} \;
이름에는 각 도구의 목적에 대한 큰 단서가 있습니다 :-).