grep 명령으로 작동하지 않는 하위 디렉터리 제외

grep 명령으로 작동하지 않는 하위 디렉터리 제외

이것은 검색의 루트 디렉터리에서 "foo" 디렉터리를 제외한다는 점에서 나에게 효과적입니다.

grep -rn --exclude-dir=foo 'custom'

그러나 이것은 작동하지 않습니다.

grep -rn --exclude-dir=foo/bar 'custom'

그러나 "foo/bar" 디렉토리는 여전히 검색됩니다. 나는 또한 따옴표를 사용하여 시도했습니다.

grep -rn --exclude-dir='foo/bar' 'custom'

우분투 20을 사용하고 있습니다.

업데이트

완벽하지는 않지만 대신 다음 해결 방법을 사용했습니다.

grep -rn 'custom'|grep -v 'foo/bar'

이렇게 하면 "foo/bar"와 "custom"이 모두 포함된 행을 찾지 못합니다.

답변1

방금 같은 문제가 발생하여 전화로 해결했습니다.

grep -rn --exclude="**/foo/**" 'custom'

답변2

"*variable*"grep 검색에서 제외하려는 디렉터리와 일치하는 와일드카드로 이 연산자를 사용하세요 .

귀하의 경우에는

grep -rn --exclude-dir={"*foo*"} 'custom'이름이 'foo'인 디렉터리 또는 하위 디렉터리를 제외합니다.

grep -rn --exclude-dir={"*foo*","*bar*"} 'custom'이름이 'foo' 및 'bar'인 모든 디렉토리와 하위 디렉토리를 제외합니다.

관련 정보