并行和 wget 下载并生成有序数字文件名

并行和 wget 下载并生成有序数字文件名

我有filelist数千个指向不一致命名的文件的绝对路径,如下所示:

file1A-2
file-76B
fileC-23
  (...)
file9B-1

我正在寻找一种方法来使用parallelwget/ curl/aria2或类似的工具从使用多个连接和进程下载所有文件filelist,同时以正确的顺序用新名称保存每个文件,如下所示:

file1A-2     >    file0001
file-76B     >    file0002
fileC-23     >    file0003
           (...)
file9B-1     >    file9999

答案1

这是一个基本的想法:

i=0
for url in $(grep -v '#' "$1") ; do 
  ((i++))
  wget --output-document="file"$(printf "%03d" $i) "$url"
done

我没有使用过parallel,但这似乎可以完成工作:

i=0
for s in $(grep -v '#' "$1") ; do 
  ((i++))
  parallel --no-notice -n0 wget --output-document="file"$(printf "%03d" $i) "$s" ::: {1..1}
done

这些脚本需要列表文件作为命令行上的参数。

相关内容