ファイル内の行をグループ化し、グループごとにプログラムに入力します。

ファイル内の行をグループ化し、グループごとにプログラムに入力します。

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

wkhtmltopdf $(cat urlsfile) my.pdf

ではurlsfile、各行が URL です。

urlsfileここで、 の 15 行ごとにグループ化し、URL のグループを一度にプログラムに入力したいと思います。これを bash で実行するにはどうすればよいですか?

15 個の URL ごとに 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

関連情報