私のディレクトリには次のファイルがあります。
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
テストしてみてください。動作します!