数字順のグローブ

数字順のグローブ

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

c0.pdf   c12.pdf  c15.pdf  c18.pdf  c20.pdf  c4.pdf  c7.pdf
c10.pdf  c13.pdf  c16.pdf  c19.pdf  c2.pdf   c5.pdf  c8.pdf
c11.pdf  c14.pdf  c17.pdf  c1.pdf   c3.pdf   c6.pdf  c9.pdf

Ghostscriptを使用して数字順にそれらをリンクしたいと思います(これに似ています)。

gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf *.pdf

しかし、シェル拡張順序は、数字の自然順序ではなくアルファベット順序を再現します。

$ for f in *.pdf; do echo $f; done
c0.pdf
c10.pdf
c11.pdf
c12.pdf
c13.pdf
c14.pdf
c15.pdf
c16.pdf
c17.pdf
c18.pdf
c19.pdf
c1.pdf
c20.pdf
c2.pdf
c3.pdf
c4.pdf
c5.pdf
c6.pdf
c7.pdf
c8.pdf
c9.pdf

拡張子で目的の順序をどのように達成できますか(可能であれば、0ファイル名の数字に-paddingを手動で追加せずに)?

使用法の提案を見つけましls | sort -Vたが、私の特定のユースケースに合わせて機能させることはできません。

ベストアンサー1

また、zshのglob修飾子救助に来てください。

echo *.pdf(n)

おすすめ記事