재귀적으로 검색하고 지정된 파일 패턴을 사용할 수 있습니까?
나는 동등한 일을하려고 노력하고 있습니다.
find ./ -name "*.[c|h]" -exec grep -Hn PATTERN {} \;
분명히 grep의 -r 플래그를 사용할 수 있지만 파일 이름 패턴을 지정할 때는 다음과 같습니다.
grep -Hn -r PATTERN *.c
재귀적으로가 아닌 현재 디렉터리에서 *.c 파일만 찾습니다.
이것을 찾았지만 파일 이름 지정에 대해서는 언급하지 않습니다.재귀 grep과 find / -type f -exec grep {} \; 중 어느 것이 더 효율적이고 빠르나요?
답변1
적어도 최신 버전의 GNU에서는 인수에 grep
glob 패턴을 사용할 수 있습니다.--include
grep -Hrn --include="*.[ch]" PATTERN .
.
[GNU grep > 2.11에서는 를 사용할 때 명시적인 시작 디렉터리를 생략할 수 있습니다 -r
.]