Curl 並列ダウンロード ファイル リスト

Curl 並列ダウンロード ファイル リスト

初めての投稿です。ごちゃごちゃしていたらごめんなさい =)

Ubuntu 14.04lts 64ビット サーバー バージョンを使用しています。

リストがあります(url.リスト) には、ダウンロードする URL のみが 1 行に 1 つずつ含まれており、次のようになります。

http://domain.com/teste.php?a=2&b=3&name=1
http://domain.com/teste.php?a=2&b=3&name=2
...
http://domain.com/teste.php?a=2&b=3&name=30000

ご覧のとおり、ファイルには多くの行があります (この場合は 30000)。そのため、私は次のようにして、多数の URL を同時にダウンロードするトリックを使用しています。

cat url.list | xargs -n 1 -P 10 <<MAGIC COMMAND THAT WILL SAVE ME>>

問題は、出力ファイルの名前を、名前フィールドの同じ値 (1.html、2.html、...、30000.html ecc など) に変更し、curl を使用してファイルのサイズを 50 KB に制限したいということです。したがって、curl コマンドは次のようになります。

curl -r 0-50000 -L $URL -o $filename.html -a $filename.log

どうすればできますか?

パイプの出力を解析すると$URLをエコー | sed -n -e 's/^.*name=//p'しかし、パイプの出力を 2 つの変数 ($URL と $filename) で取得する同じ行でこれをどのように使用するのかわかりません。

これを試しましたが、成功しませんでした:

cat url.list | xargs -n 1 -P 10 | filename=$(sed -n -e 's/^.*name=//p') ; curl -r 0-50000 -L $URL -o $filename.html -a $filename.log

よろしくお願いします

答え1

seq 50000 |
  parallel -P 10 curl -r 0-50000 -L '"http://domain.com/teste.php?a=2&b=3&name="'{} -o {}.html -a {}.log 

関連情報