Curl並行下載檔案列表

Curl並行下載檔案列表

第一篇文章抱歉,如果我在這裡弄亂了=)

使用Ubuntu 14.04lts 64位元伺服器版本。

我有一個清單(網址列表),只有要下載的 URL,每行一個,如下所示:

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來限製文件的大小文件大小為 50KB。所以curl指令應該是這樣的:

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 

相關內容