ฉันมีรายการไฟล์ 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
แต่ฉันไม่สามารถใช้งานได้กับกรณีการใช้งานเฉพาะของฉัน