
Ich habe ein Programm, das URLs als Befehlszeilenargumente verwendet und eine PDF-Datei ausgibt. Beispielsweise verwende ich Befehlssubstitution, um die Eingabe-URLs aus einer Datei bereitzustellenurlsfile
wkhtmltopdf $(cat urlsfile) my.pdf
In urlsfile
ist jede Zeile eine URL.
Jetzt möchte ich alle 15 Zeilen in gruppieren urlsfile
und dem Programm jeweils eine Gruppe von URLs zuführen. Wie kann ich das in Bash machen?
Beachten Sie, dass es akzeptabel ist, pro 15 URLs eine PDF-Datei zu erstellen. Anschließend werde ich die PDF-Dateien zu einer zusammenführen. Wenn das Zusammenführen vom Programm durchgeführt werden kann, ist das besser.
Danke.
Antwort1
Mit xargs
:
xargs -a urlsfile -n 15 bash -c 'wkhtmltopdf "$@" my_$$.pdf'
oder wenn Ihr das xargs
nicht unterstützt -a
:
cat urlsfile | xargs -n 15 bash -c 'wkhtmltopdf "$@" my_$$.pdf'
Antwort2
gawk '{ f=f " " $0}
NR%15==0 { print("wrhtml2pdf " f " " NR/15 ".pdf") ; f=""}' urls
und wenn Ihnen das Ergebnis gefällt, ersetzen Sie print
durchsystem