나는 숫자 1-99로 끝나는 모든 파일을 찾고 다른 모든 파일은 제외하는 find 명령 문자열을 만들려고 노력해 왔습니다.
예를 들어 나는 찾고 싶다내 파일 1 내 파일 99하지만내 파일 456설마내 파일 백업
내가 생각하는 정규식은 이지만 myfile[1-9]{1,2}
find와 함께 작동하도록 할 수 없습니다.
find . -regex '.*myfile[0-9]{1,2}'
또는
find . -iname 'myfile[0-9]{1,2}'
제가 아는 한 이 부분은 {1,2}
작동하지 않는 부분입니다.
(그런데, -name -regex
서로 바꿔서 사용할 수 있나요?)
도움을 주시면 감사하겠습니다.
답변1
GNU find가 있는 경우 다른 정규식 유형을 사용할 수 있습니다.
find . -regextype sed -regex '.*myfile[0-9]\{1,2\}'
GNU에 따라 find
사용중성화 된 Emacs 정규식 구문기본적으로 Emacs는 \{from,to\}
구문을 지원하지만 적어도 GNU는 find
이를 지원하지 않습니다.
sed
이상하게도 참조 매뉴얼에는 정규식 구문을 다루는 섹션이 없으므로 어떤 부분을 지원하는지 누가 알겠습니까?
답변2
당신은 시도 할 수 있습니다
find . -regex '.*myfile[0-9][0-9]?'
또는
find . \( -name "myfile[0-9][0-9]" -o -name "myfile[0-9]" \)