@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