반응형
특정 확장자를 가진 파일을 재귀 적으로 찾기
특정 확장자를 가진 파일을 찾으려고합니다. 예를 들어 Robert라는 이름의 모든 .pdf 및 .jpg 파일을 찾고 싶습니다.
이 명령을 할 수 있다는 걸 알아
$ find . -name '*.h' -o -name '*.cpp'
하지만 확장자 외에 파일 자체의 이름을 지정해야합니다. 파일 이름을 반복해서 쓰는 것을 피할 수있는 방법이 있는지 알고 싶습니다. 감사합니다!
내 선호 :
find . -name '*.jpg' -o -name '*.png' -print | grep Robert
사용 find
의 -regex
인수를 :
find . -regex '.*/Robert\.\(h\|cpp\)$'
또는 다음을 사용하십시오 -name
.
find . -name 'Robert.*' -a \( -name '*.cpp' -o -name '*.h' \)
-regex
옵션 을 사용하는 대신 find
질문이 bash 라는 레이블이 지정되어 있으므로 중괄호 확장 메커니즘을 사용할 수 있습니다.
eval find . -false "-o -name Robert".{jpg,pdf}
find -name "*Robert*" \( -name "*.pdf" -o -name "*.jpg" \)
는 -o
repreents OR
조건을하고 괄호 안에 원하는대로 당신은 많은대로 추가 할 수 있습니다. 따라서 이름에 "Robert"라는 단어가 포함되어 있고 이름이 "pdf"또는 "jpg"로 끝나는 모든 파일을 찾습니다.
이 Q / A는 정규식으로 find를 사용 하는 방법을 보여줍니다. find 명령으로 regex를 사용하는 방법?
패턴은 다음과 같을 수 있습니다.
'^Robert\\.\\(h|cgg\\)$'
스크립트로 다음을 사용할 수 있습니다.
find "${2:-.}" -iregex ".*${1:-Robert}\.\(h\|cpp\)$" -print
- 다른 이름으로 저장
findcc
- chmod 755 findcc
그리고 그것을 사용하십시오
findcc [name] [[search_direcory]]
예 :
findcc # default name 'Robert' and directory .
findcc Joe # default directory '.'
findcc Joe /somewhere # no defaults
사용할 수 없습니다
findcc /some/where #eg without the name...
또한 대안으로 사용할 수 있습니다.
find "$1" -print | grep "$@"
과
findcc directory grep_options
처럼
findcc . -P '/Robert\.(h|cpp)$'
참고 URL : https://stackoverflow.com/questions/25693638/recursively-find-files-with-a-specific-extension
반응형
'Program Tip' 카테고리의 다른 글
Kibana + Elastic Search를 사용하여 필드의 고유 개수를 검색하는 방법 (0) | 2020.11.11 |
---|---|
SQLite : 인덱스가 범위를 벗어 났기 때문에 인덱스 1에서 인수를 바인딩 할 수 없습니다. (0) | 2020.11.11 |
새 활동에 대한 순환 표시 전환 (0) | 2020.11.11 |
Flask @ app.route에서 Python 콘솔로 인쇄하는 방법 (0) | 2020.11.11 |
jinja2 출력을 브라우저 대신 Python으로 파일로 렌더링하는 방법 (0) | 2020.11.10 |