반응형
Unix 찾기 : 여러 파일 유형
여러 파일 형식으로 find -name을 실행하고 싶습니다. 예 :
find -name *.h,*.cpp
이것이 가능한가?
$ find . -name '*.h' -o -name '*.cpp'
man
페이지 에서이 정보를 찾으려면 man find
입력 /OPERATORS
하고 Enter 키 를 눌러 연산자를 입력 하고 검색 합니다.
는 .
GNU의 발견에 꼭 필요한 것은, 그러나 유닉스 필요하다. 따옴표는 두 경우 모두 중요하며 이러한 유형의 파일이 현재 디렉토리에 나타나면 오류가 발생합니다.
일부 시스템 (예 : Cygwin)에서 확장 세트를 포함하려면 괄호가 필요합니다.
$ find . \( -name '*.h' -o -name '*.cpp' \)
그게 내가 사용하는 것
find . \( -name "*.h" -o -name "*.cpp" \) -print
find . -name "*.h" -or -name "*.cpp"
나를 위해 작동합니다.
find . -name '*.h' -o -name '*.cc'`
파일 검색에 사용됩니다.
find . \( -name '*.h' -o -name '*.cc' \)`
그들에 대한 명령을 실행하기 위해 작동합니다.
find . \( -name '*.h' -o -name '*.cc' \) -exec egrep "#include" {} \; -print | egrep "^\."
-regex
유틸리티를 사용할 수도 있습니다 .
find -E . -iregex ".*\.(js|jsx|html|htm)"
정규식은 전체 절대 경로를 봅니다.
테스트 케이스가있는 해당 정규식에 대한 설명은 https://regex101.com/r/oY1vL2/1을 확인 하십시오.
-E
(경로 앞의 플래그로) 확장 된 (최신) 정규식을 활성화합니다.
BSD 용입니다 find
(Mac OSX 10.10.5).
그것이 제가 사용하는 것입니다. "-regextype posix-extended"인수를 강력히 권장합니다.
find . -type f -iname "*.log" -o -iname "*.gz"
find . -type f \( -name "*.gz" -o -name "*.log" \)
find . -type f -regex '.*\(\.gz\|\.log\)'
find . -type f -regextype posix-extended -regex '.*.(log|gz)'
find ./ -name *.csv -o \\-name *.txt|xargs grep -i new
참고 URL : https://stackoverflow.com/questions/7190565/unix-find-multiple-file-types
반응형
'Program Tip' 카테고리의 다른 글
Clojure에서 Java 클래스의 메소드를 얻으려면 어떻게해야합니까? (0) | 2020.11.30 |
---|---|
Rails 3 및 Heroku : 푸시시 자동으로 "rake db : migrate"? (0) | 2020.11.30 |
Rails : 3 개 열의 고유 한 조합 확인 (0) | 2020.11.30 |
요소 ID에 포커스가 있는지 어떻게 확인할 수 있습니까? (0) | 2020.11.30 |
Docker의 기존 명명 된 볼륨에 데이터를 추가하는 올바른 방법은 무엇입니까? (0) | 2020.11.30 |