最初の投稿 ここで台無しになったらすみません =)
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