Cómo descargar varios archivos XML desde diferentes URL

Cómo descargar varios archivos XML desde diferentes URL

@slhck proporcionó una respuesta útil a esta pregunta similar.

Descarga de múltiples archivos con wget y manejo de parámetros

Este código se proporcionó para leer URL de un archivo de texto.lista de archivos, luego ejecuta un bucle para descargar cada uno.

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

 

Como no estoy familiarizado con los scripts de shell, me pregunto si se pueden descargar varios archivos xml de la siguiente manera:

  • crear un archivo de texto simple separado por comaslista de archivos
  • Leer de:

lista de archivos

renamefile.xml, url-01.php
renameFileDifferent.xml, url-02.php
SpecificFileRename.xml, "url-03"
newFilename.xml, "url-04"

  • lee cada línea
  • dividir la línea en nuevo archivo, archivo remoto
  • Y correr:  

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

 

¿Es posible escribir esto en un script de shell? ¿Puede dar un ejemplo?

Respuesta1

Para obtener el texto anterior a la coma utiliza ${line/,*}.

(Lo que esto realmente hace es reemplazar ",*" otodo el texto desde la coma en adelanteconcuerda vacía- dejando solo la parte de la cadena antes de la coma)

Para obtener el texto después de la coma utiliza ${line/*,}.

Entonces el comando completo sería:

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

o, en una línea:

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

En Windows (suponiendo que haya instalado wget, desdehttp://gnuwin32.sourceforge.net/packages/wget.htm, y establece tu ruta correctamente), sería:

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

información relacionada