find
를 사용하여 여러 파일 형식을 검색하는 명령이 있습니다 grep
. 예를 들어 디렉터리를 제외 하고 파일에서 .js
문자열을 검색하려면 다음을 입력하면 됩니다..jsx
foo
dist
find . -path "./dist" -prune -or -iname "*.js" -exec grep "foo" {} + -or -iname "*.jsx" -exec grep "foo" {} +
-exec
각 파일 유형에 대해 반복되지 않도록 이 명령을 다시 작성하는 방법이 있습니까 ? 나는 노력했다
find . -path "./dist" -prune -or -iname "*.js" -or -iname "*.jsx" -exec grep "foo" {} +
그러나 이들 모두는 .jsx
파일만 .js
검색 하며 .jsx
.
답변1
-or
우선순위는 (기본 커넥터)보다 낮 -and
으므로 분리의 "우선순위"를 명시적으로 높여야 합니다.
find . -path "./dist" -prune -or \( -iname "*.js" -or -iname "*.jsx" \) -exec grep "foo" {} +