Obtenga wget para descargar solo los elementos nuevos de una lista.
Tengo un archivo que contiene una lista de rutas de archivos. Los estoy descargando de esta manera con wget:
wget -i cram_download_list.txt
Sin embargo, la lista es larga y mi sesión se interrumpe. Me gustaría verificar en el directorio qué archivos ya existen y solo descargar los pendientes.
He estado tratando de encontrar una opción que involucre “comm”, pero no logro entender cómo combinarlo con wget.
El contenido del archivo se ve así:
ftp://ftp.sra.ebi.ac.uk/vol1/run/ERR323/ERR3239280/NA07037.final.cram
ftp://ftp.sra.ebi.ac.uk/vol1/run/ERR323/ERR3239286/NA11829.final.cram
ftp://ftp.sra.ebi.ac.uk/vol1/run/ERR323/ERR3239293/NA11918.final.cram
ftp://ftp.sra.ebi.ac.uk/vol1/run/ERR323/ERR3239298/NA11994.final.cram
Actualmente, estoy intentando hacer algo como esto:
ls *.cram | sed 's/^/ftp:\/\/ftp.sra.ebi.ac.uk\/vol1\/run\/ERR323\/ERR3239480\//' > downloaded.txt
comm -3 <(sort cram_download_list.txt) <(sort downloaded.txt) | tr -d " \t" > to_download.txt
wget -i to_download_final.txt
davy.ai
Para descargar solo los archivos pendientes de una lista de rutas de archivos utilizando wget, puedes comparar la lista de archivos ya descargados con los que están en la lista de descargas y eliminar los que ya han sido descargados. Aquí están los pasos para lograr esto:
Esto creará un nuevo archivo “downloaded_ftp.txt” que contiene las rutas de los archivos con el prefijo FTP agregado.
Ordena los dos archivos “cram_download_list.txt” (que contiene la lista completa de rutas de archivos a descargar) y “downloaded_ftp.txt” y compáralos usando el comando “comm”. La opción “-3” suprime las líneas que aparecen en ambos archivos. Esto creará un archivo “to_download.txt” que contiene solo las rutas de los archivos que aún no han sido descargados:
Esto solo descargará los archivos que aún no han sido descargados y omitirá los que ya están presentes en el directorio.