Ich versuche, ein Bash-Skript zu schreiben, um alle PDF-Dateien eines Verzeichnisses in eine einzige PDF-Datei zusammenzuführen. Der Befehl pdfunite *.pdf output.pdf
erreicht dies erfolgreich, aber es führt die Eingabedokumente in einer regelmäßigen Reihenfolge zusammen:
1.pdf 10.pdf 11.pdf 2.pdf 3.pdf 4.pdf 5.pdf 6.pdf 7.pdf 8.pdf 9.pdf
Ich möchte, dass die Dokumente in numerischer Reihenfolge zusammengeführt werden:
1.pdf 2.pdf 3.pdf 4.pdf 5.pdf 6.pdf 7.pdf 8.pdf 9.pdf 10.pdf 11.pdf
Ich denke, ein Befehl, der ls -v
oder sort -n
und pdfunite
mischt, würde den Trick machen, aber ich weiß nicht, wie ich sie kombinieren soll.
Irgendeine Idee, wie ich PDF-Dateien mit einer numerischen Sortierung zusammenführen könnte?
Vielen Dank für jede Hilfe
Sie können das Ergebnis des Befehls mit $()
einbetten,
So können Sie Folgendes tun
oder
%Vor%Beachten Sie jedoch, dass dies nicht funktioniert, wenn der Dateiname Sonderzeichen wie Leerzeichen enthält.
Wenn Sie Folgendes tun können:
%Vor%Obwohl es ein wenig kompliziert erscheint, ist es nur eine Kombination von
Beachten Sie, dass Sie xargs
nicht verwenden können, da pdfunite
Eingabe-PDFs als Argumente in der Mitte benötigt.
Ich habe es vermieden, readarray
zu verwenden, da es in der älteren bash-Version nicht unterstützt wird, aber Sie können es anstelle von IFS=.. read -ra ..
verwenden, wenn Sie das neuere bash
haben.
Mach es in mehreren Schritten. Ich nehme an, Sie haben Dateien von 1 bis 99.
%Vor%und so weiter.
Die endgültige Datei enthält alle Ihre PDF-Dateien in numerischer Reihenfolge.
!!! Achten Sie darauf, die Ausgabedatei wie out1.pdf usw. nicht zu schreiben, da sonst pdfunite die letzte Datei überschreibt !!!
Bearbeiten: Tut mir leid, dass ich die [^ 0-9] in jeder Regex vermisste. In den obigen Befehlen wurde es korrigiert.