ファイルの行をグループ化し、一度に1グループずつプログラムに供給します。

ファイルの行をグループ化し、一度に1グループずつプログラムに供給します。

URLをコマンドライン引数として使用し、PDFファイルを出力するプログラムがあります。たとえば、コマンド置換を使用してファイルから入力URLを指定します。urlsfile

wkhtmltopdf $(cat urlsfile) my.pdf

urlsfile各行はURLです。

15行ごとにグループ化urlsfileし、一度に一連のURLをプログラムに提供したいと思います。 Bashでどうすればいいですか?

15個のURLごとに1つのpdfファイルを作成することが許可され、その後、このpdfファイルを1つにマージします。プログラムでマージを実行できる場合は、より良いでしょう。

ありがとうございます。

答え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

出力を好む場合は、print次のように置き換えます。system

関連情報