在GNU Parallel中你有:
seq() - sequence number of job
多亏了这一点,我可以使用:
在wget
中运行parallel
parallel -a urls.txt -j8 wget -q {} -O '{=$_=sprintf("file%05d.ts", $job->seq())=}'
..它会像这样命名文件:
file00001.ts
file00002.ts
...
file00999.ts
现在,我如何获得xargs
的序列号?
示例:
xargs -P 8 -n 1 curl -O < urls.txt
答案 0 :(得分:0)
像这样:
cat urls.txt |
parallel --shellquote |
parallel --shellquote |
perl -pe 's/(.*)/$1.sprintf(" -O file%05d.ts",++$t)/e' |
xargs -P 8 -n 1 -I {} bash -c "wget {}"
如果你有像空格和&#39;这样的特殊字符的网址,则需要2 --shellquote
:
http://pi.dk/? '