Paralelo e wget para baixar e gerar nomes de arquivos numéricos ordenados

4

Eu tenho um filelist com milhares de caminhos absolutos para arquivos nomeados de forma inconsistente, como este:

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

Estou procurando uma maneira de usar parallel , wget / curl / aria2 ou ferramentas semelhantes para fazer o download de todos os arquivos do filelist usando várias conexões e processos, salvando cada arquivo com um novo nome em uma ordem correta, como esta:

file1A-2     >    file0001
file-76B     >    file0002
fileC-23     >    file0003
           (...)
file9B-1     >    file9999
    
por VixinG 10.10.2016 / 00:54

1 resposta

3

Aqui está uma ideia básica:

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

Eu não tenho experiência com parallel , mas isso parece fazer o trabalho:

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

Esses scripts esperam o arquivo de lista como um argumento na linha de comando.

    
por Thomas W. 10.10.2016 / 01:41