Download di più file in parallelo con nomi modificati


0

Sto scrivendo bash script e non so come risolvere il mio problema.

Voglio scaricare più file contemporaneamente, ma ... Voglio salvare i file con nomi modificati.

Ho una variabile con URL.

example.com/aaa.txt
example.com/ooo/bbbbbb.txt 
example.info/c.txt 

L'ordine dell'URL è importante.

Dopo aver scaricato voglio:

1.txt
2.txt
3.txt

Ho testato parallelo e wget. Ma non so come cambiare i nomi dei file.

PS: limite di 5 download simultanei.

Risposte:


0

ciò di cui ho veramente bisogno è vedere un esempio della tua variabile di URL. ma comunque, ecco la base di ciò che sto pensando:

 #!/usr/bin/bash

 end=$(wc -l URLs.txt | sed 's/\ .*//g')
 x=1

 while read URL; do

         until [ $x -eq $end ]; do

                wget $URL --output-document=$x.txt
                x=$(($x+1))

         done

 done < URLs.txt

lo modificherò se hai più informazioni, ma al momento l'ho impostato in modo che legga URLs.txt che deve essere un URL per riga e nella stessa directory


Il tuo script è molto simile al mio codice. Purtroppo questo non è quello che sto cercando. Nel tuo esempio, i file non vengono scaricati in parallelo. Nel ciclo esegue solo una wget. Funziona ma è lento. Il mio URL riceve dal file di analisi directory.djvu (djvudump ./directory.djvu)
Creek

magari crea cinque file URL.txt separati e prova: bash script1.sh & bash script2.sh & bash script3.sh & bash script4.sh & bash5.sh &
infinite-etcetera il

Ci ho pensato anche io. Spero di poter trovare una soluzione migliore.
Creek,

length=$(wc -l URLs.txt | cut -f1 -d ' ') && split -d -l $(($length/5)) URLs.txt URLs.txtrenderebbe veloce la divisione
infinite-etcetera,

sembra un sacco di risultati qui: startpage.com/do/…
infinite-etcetera
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.