Faça download de arquivos com wget de uma lista, mas salve com um padrão de nomenclatura específico

3
  

Esta questão é semelhante a Baixe arquivos de uma lista , mas não é o mesmo que eu quero ir além disso. Por favor, não feche como duplicata.

Eu tenho uma lista de arquivos para download em um arquivo de texto foo.txt . Existe um diretório foo no qual eu estou, e eu uso wget -i ../foo.txt para extrair os arquivos. Tudo bem e elegante.

No entanto, o que preciso é fazer o download dos arquivos com um tipo específico de padrão de nomenclatura. Ele está puxando para baixo os arquivos json que estão sendo cuspidos por chamadas de API para um servidor específico, mas eu preciso que ele seja salvo em um padrão específico, como foo_1.json , e porque não está realmente vinculando a um arquivo foo_1.json não vai salvá-lo como tal.

Existe alguma maneira de expandir a funcionalidade wget para salvar arquivos que ele baixa em um padrão de nome de arquivo específico, digamos, sequencialmente?

Se não, métodos alternativos de CLI não usando wget são aceitáveis.

    
por Thomas Ward 11.02.2015 / 00:58

1 resposta

4

Você sempre pode usar um loop de shell:

while read url; do wget -O foo_$((++i)).json "$url"; done < list.txt

O arquivo list.txt é sua lista de URLs, um por linha. Isso é lido pelo loop while, cada URL é salvo como $url , o wget faz o download e o -O sinaliza para salvar em um arquivo chamado foo_N.json , em que N é o valor atual de $i . Como $i é incrementado em cada iteração ( $((++i)) ), isso resultará em uma sequência crescente de nomes de arquivos.

    
por terdon 11.02.2015 / 01:29