Mein erster Instinkt für die Stapelverarbeitung von Dateien ist fast immer find
. Es ist ausgezeichnet, wenn Sie irgendeine Art von Filterung einbauen müssen (was Sie hier nicht tun), aber es ist immer noch ein Favorit. Dies wird auch in Unterverzeichnisse zurückgeführt, es sei denn, Sie sagen es (mit -maxdepth 1
oder andere):
find -name '*.jpg' -exec convert "{}" "{}.pdf" \;
rename 's/\.jpg\.pdf$/.pdf/' *.jpg.pdf
Die Anweisung find
/ convert
gibt eine Menge .jpg.pdf
Dateien aus. Der zweite räumt das auf.
Vielleicht ein etwas eleganterer Ansatz in einem so einfachen Fall:
for file in *.jpg ; do convert "$file" "${file/%jpg/pdf}"; done
Dies wiederholt sich nicht und Sie müssen nicht herumspielen, um die Dateinamen zu bereinigen.
Und ich hätte fast vergessen, dass ImageMagick eine numerische Ausgabe hat, die perfekt zu Ihrem Anwendungsfall passt. Im Folgenden wird nur Stick eine dreistellige Kennung ( 000
, 001
, 002
, usw.) am Ende des „myPDF“:
convert *.jpg myPDF%03d.pdf
Wenn Sie mit mehr als tausend Einträgen zu tun haben, erhöhen Sie natürlich die Anzahl. Wenn Sie nicht möchten, dass es mit Nullen aufgefüllt wird, entfernen Sie die führende Null.