내 디렉토리에 다음과 같은 파일이 있습니다.
booklet-001.pdf
booklet-002.pdf
booklet-003.pdf
…
booklet-997.pdf
booklet-998.pdf
booklet-999.pdf
음, 번호가 079에서 256인 파일을 일치시키고 싶습니다. 하지만 zsh의 정규식 일치로 이를 수행하는 방법은 무엇입니까?
답변1
그렇다면성냥파일 목록(존재 여부에 관계없이)을 생성하는 대신 glob 연산자를 사용하고 싶습니다 <x-y>
.
print -rC1 -- booklet-<79-256>.pdf
<79-256>
79에서 256 사이의 숫자를 나타내는 ASCII 10진수 시퀀스와 일치하므로 79
또는 ... 079
와 일치합니다.0000000079
(match ) 다음에 가 오기 때문에 *<79-256>.pdf
on 에서도 일치 합니다 . 루트 이름이 79에서 256 사이의 숫자로 끝나는 PDF 파일과 일치하도록 변경합니다 .booklet-456789.pdf
booklet-4567
89
<79-256>
.pdf
(|*[^0-9])<79-256>.pdf
booklet-079.pdf
일치하지만 일치하지 않는 booklet-79.pdf
glob의 경우 booklet-0079.pdf
(after set -o extendedglob
)를 사용합니다.
print -rC1 -- booklet-(<79-256>~^???).pdf
(<79-256>
아니 아니 ???
)
답변2
zsh에서 다음을 수행하십시오.
ls booklet-{079..256}.pdf
테스트해 보세요. 작동합니다!