
Eu tenho um programa que usa URLs como argumentos de linha de comando e gera um arquivo PDF. Por exemplo, eu uso a substituição de comando para fornecer os URLs de entrada de um arquivourlsfile
wkhtmltopdf $(cat urlsfile) my.pdf
Em urlsfile
, cada linha é um URL.
Agora eu gostaria de agrupar a cada 15 linhas urlsfile
e alimentar um grupo de URLs para o programa por vez. Como posso fazer isso no bash?
Observe que é aceitável criar um arquivo PDF por 15 URLs e então mesclarei os arquivos PDF em um. Se a mesclagem puder ser feita pelo programa, melhor.
Obrigado.
Responder1
Com xargs
:
xargs -a urlsfile -n 15 bash -c 'wkhtmltopdf "$@" my_$$.pdf'
ou se você xargs
não suportar -a
:
cat urlsfile | xargs -n 15 bash -c 'wkhtmltopdf "$@" my_$$.pdf'
Responder2
gawk '{ f=f " " $0}
NR%15==0 { print("wrhtml2pdf " f " " NR/15 ".pdf") ; f=""}' urls
e se você gostar da saída, substitua print
porsystem