Sie können das Ergebnis des Befehls mit $()
einbetten , damit Sie folgendes tun können
$ pdfunite $(ls -v *.pdf) output.pdf
oder
$ pdfunite $(ls *.pdf | sort -n) output.pdf
Beachten Sie jedoch, dass dies nicht funktioniert, wenn der Dateiname Sonderzeichen wie Leerzeichen enthält.
In dem Fall können Sie Folgendes tun:
ls -v *.txt | bash -c 'IFS=$'"'"'\n'"'"' read -d "" -ra x;pdfunite "${x[@]}" output.pdf'
Obwohl es ein bisschen kompliziert erscheint, ist es nur eine Kombination aus
- Bash:Tabulatorgetrennte Dateizeile in Array einlesen
- Argumentlisten mit Leerzeichen erstellen
- Wie kann man einfache Anführungszeichen innerhalb von Zeichenfolgen mit einfachen Anführungszeichen maskieren?
Beachten Sie, dass Sie xargs
nicht verwenden können seit pdfunite
erfordert Eingabe-PDFs als Mitte der Argumente. Ich habe die Verwendung von readarray
vermieden da es in älteren Bash-Versionen nicht unterstützt wird, aber Sie können es anstelle von IFS=.. read -ra ..
verwenden wenn Sie neuere bash
haben .