개요
2021.07.17 - grep - 디렉터리에서 키워드를 포함한 파일 찾기
2022.03.03 - [grep] 대소문자 구분 없이 문자열 찾기
위 글에 이어서 grep 사용 예시를 하나 더 적어둔다.
grep -r 옵션을 이용해 하위 디렉터리를 대상으로 검색을 수행할 때 특정 디렉터리는 검색에서 제외하고 싶다. 방법을 적어둔다.
grep --exclude-dir
grep 명령은 패턴과 일치하는 디렉터리를 제외하고 검색할 수 있도록 --exclude-dir 옵션을 제공한다. 단, -r 옵션과 함께 사용해야 한다.
grep
# -r, --recursive like --directories=recurse
# -R, --dereference-recursive likewise, but follow all symlinks
# --exclude-dir=GLOB skip directories that match GLOB
--include-dir와 같은 옵션은 제공하지 않는 것 같다.
사용 예시
/etc 아래의 하위 디렉터리 파일을 대상으로 family라는 키워드로 검색해보려고 한다.
cd /etc
grep -r family
패턴을 포함한 파일명만 뽑아내면 사진과 같다. 여기서 fonts라는 하위 디렉터리는 검색 대상에서 제외하려고 한다.
grep -r --exclude-dir=fonts family
검색 결과에서 fonts 디렉터리는 제외된 것을 확인할 수 있다. 여러 디렉터리를 제외할 때는 --exclude-dir 옵션을 여러 번 나열하면 되는 것 같다.
grep -r --exclude-dir=fonts --exclude-dir=u* family
참고 문서
How can I exclude directories from grep -R?