
第一篇文章抱歉,如果我在這裡弄亂了=)
使用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