
Tengo un programa que toma URL como argumentos de línea de comando y genera un archivo pdf. Por ejemplo, utilizo la sustitución de comandos para proporcionar las URL de entrada de un archivo.urlsfile
wkhtmltopdf $(cat urlsfile) my.pdf
En urlsfile
, cada línea es una URL.
Ahora me gustaría agrupar cada 15 líneas urlsfile
y enviar un grupo de URL al programa a la vez. ¿Cómo puedo hacer eso en bash?
Tenga en cuenta que es aceptable crear un archivo pdf por cada 15 URL y luego fusionaré los archivos pdf en uno. Si el programa puede realizar la fusión, es mejor.
Gracias.
Respuesta1
Con xargs
:
xargs -a urlsfile -n 15 bash -c 'wkhtmltopdf "$@" my_$$.pdf'
o si tu xargs
no es compatible -a
:
cat urlsfile | xargs -n 15 bash -c 'wkhtmltopdf "$@" my_$$.pdf'
Respuesta2
gawk '{ f=f " " $0}
NR%15==0 { print("wrhtml2pdf " f " " NR/15 ".pdf") ; f=""}' urls
y si te gusta el resultado, reemplaza print
porsystem