zsh の数値範囲を重要でないゼロと一致させます。

zsh の数値範囲を重要でないゼロと一致させます。

私のディレクトリには次のファイルがあります。

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>.pdfonでも一致します。ルート名が79から256の数字で終わるPDFファイルと一致するように変更します。booklet-456789.pdfbooklet-456789<79-256>.pdf(|*[^0-9])<79-256>.pdf

booklet-079.pdf一致するが一致しないbooklet-79.pdfglobの場合はbooklet-0079.pdf(after set -o extendedglob)を使用します。

print -rC1 -- booklet-(<79-256>~^???).pdf

<79-256> いいえ ???)

答え2

zsh で以下を実行します。

ls booklet-{079..256}.pdf

テストしてみてください。動作します!

関連情報