将文件中的行分组并一次将一组输入到程序中

将文件中的行分组并一次将一组输入到程序中

我有一个程序,它将 url 作为命令行参数并输出一个 pdf 文件。例如,我使用命令替换来提供文件中的输入 urlurlsfile

wkhtmltopdf $(cat urlsfile) my.pdf

在 中urlsfile,每一行都是一个 url。

现在我想将 中的每 15 行进行分组urlsfile,并一次向程序提供一组 url。我怎样才能在 bash 中做到这一点?

请注意,每 15 个网址创建一个 pdf 文件是可以接受的,然后我会将这些 pdf 文件合并为一个。如果合并可以由程序完成,那就更好了。

谢谢。

答案1

xargs

xargs -a urlsfile -n 15 bash -c 'wkhtmltopdf "$@" my_$$.pdf'

或者如果你xargs不支持-a

cat urlsfile | xargs -n 15 bash -c 'wkhtmltopdf "$@" my_$$.pdf'

答案2

gawk        '{ f=f " " $0} 
    NR%15==0 { print("wrhtml2pdf " f " " NR/15 ".pdf") ; f=""}' urls

如果您喜欢输出,请替换printsystem

相关内容