Como baixar vários arquivos XML de URLs diferentes

Como baixar vários arquivos XML de URLs diferentes

@slhck forneceu uma resposta útil para esta pergunta semelhante.

Baixando vários arquivos com wget e manipulando parâmetros

Este código foi fornecido para ler URLs de um arquivo de textolista de arquivose execute um loop para baixar cada um.

    #!/usr/bin/env bash 
    while read line 
      do   
        wget -c --load-cookies cookies.txt $line -O ${line##*/} 
    done < filelist

 

Como não estou familiarizado com scripts de shell, gostaria de saber se você poderia baixar vários arquivos xml:

  • criando um arquivo de texto simples separado por vírgulalista de arquivos
  • leia de:

lista de arquivos

arquivo renomeado.xml, url-01.php
renomeadoFileDifferent.xml, url-02.php
específicoFileRename.xml, "url-03"
novoNome do arquivo.xml, "url-04"

  • leia cada linha
  • divida a linha em newfile, remoteFile
  • E corra:  

    wget -O newfile remoteFile >/dev/null 2>&1 
    

 

É possível escrever isso em um script de shell? você pode dar um exemplo?

Responder1

Para obter o texto antes da vírgula você usa ${line/,*}.

(O que isso realmente faz é substituir ",*" outodo o texto a partir da vírgulacomstring vazia- deixando apenas a parte da string antes da vírgula)

Para obter o texto após a vírgula você usa ${line/*,}.

Então o comando completo seria:

while read line
  do
    wget -O ${line/,*} ${line/*,} >/dev/null 2>&1 
done < filelist

ou, em uma linha:

while read line; do echo wget -O ${line/,*} ${line/*,} >/dev/null 2>&1; done < filelist

No Windows (supondo que você tenha instalado o wget, dehttp://gnuwin32.sourceforge.net/packages/wget.htme defina seu caminho corretamente), seria:

for /f "delims=, tokens=1*" %a in (filelist) do wget -O %a %b

informação relacionada