Pregunta

Tengo una lista de URLs que me gustaría para alimentar wget usando --input-archivo.

Sin embargo no puedo encontrar la manera de controlar el valor --output-documento al mismo tiempo, que es simple si se emite los comandos uno por uno. Me gustaría guardar cada documento como el MD5 de su URL.

 cat url-list.txt | xargs -P 4 wget

Y xargs está ahí porque también quiero hacer uso de las características max-procs de descargas paralelas.

¿Fue útil?

Solución

¿Cómo sobre el uso de un bucle?

while read -r line
do
   md5=$(echo "$line"|md5sum)
   wget ... $line ... --output-document $md5 ......
done < url-list.txt

Otros consejos

No utilice cat. Usted puede tener xargs leer desde un archivo. Desde la página man:

       --arg-file=file
       -a file
              Read items from file instead of standard input.  If you use this
              option, stdin remains unchanged when commands are  run.   Other‐
              wise, stdin is redirected from /dev/null.

En su pregunta utiliza -P 4 que sugiere usted quiere que su solución para ejecutar en paralelo. GNU http://www.gnu.org/software/parallel/ pueden ayudarle :

cat url-list.txt | parallel 'wget {} --output-document "`echo {}|md5sum`"'

Puede hacerlo de esta manera:

  

gato url-list.txt | mientras lee url;   hacer     wget -O $ url $ (echo "$ url" | MD5);   hecho

buena suerte

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top