Linux-Befehl zusammenführen PDF-Dateien mit numerischer Sortierung

8

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

    
max 13.05.2014, 23:31
quelle

2 Antworten

21

Sie können das Ergebnis des Befehls mit $() einbetten, So können Sie Folgendes tun

%Vor%

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.

    
ymonad 14.05.2014, 00:00
quelle
0

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.

    
infoclogged 18.02.2016 16:46
quelle

Tags und Links