2017-06-01 75 views
1

在GNU並行您有:獲取xargs的序列號

seq() -  sequence number of job 

多虧了這一點,我可以使用運行在parallelwget

parallel -a urls.txt -j8 wget -q {} -O '{=$_=sprintf("file%05d.ts", $job->seq())=}' 

..和它命名文件,像這樣:

file00001.ts 
file00002.ts 
... 
file00999.ts 

現在,ho I W可以得到xargs序列號?

例子:

xargs -P 8 -n 1 curl -O < urls.txt 

回答

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 {}" 

,如果你有特殊字符像空間和「網址的所需的2個--shellquote S:

http://pi.dk/? '