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)。そして、カールを使用してファイルサイズを次に制限します。 50KB。したがって、カールコマンドは次のようになります。

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

どうすれば完了できますか?

パイプの出力を解析できます。エコ$ URL | sed -n -e 's/^.*name=//p'しかし、両方の変数($ 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 

関連情報