{1,2}와 같은 정규식 수량자를 사용하여 명령 찾기

{1,2}와 같은 정규식 수량자를 사용하여 명령 찾기

나는 숫자 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]" \)

관련 정보