Selon la page de manuel de wget , –acccept-regex est l’argument à utiliser lorsque j’ai besoin de transférer sélectivement des fichiers dont les noms correspondent à une certaine expression régulière. Cependant, je ne sais pas comment utiliser –accept-regex .
En supposant que je veux obtenir des fichiers diffs-000107.tar.gz, diffs-000114.tar.gz, diffs-000121.tar.gz, diffs-000128.tar.gz dans le répertoire de données IMDB ftp: //ftp.fu-berlin .de / pub / misc / movies / database / diffs / . ” diffs \ -0001 [0-9] {2} \. tar \ .gz ” semble être une expression rationnelle pour décrire les noms de fichiers.
Cependant, lors de l’exécution de la commande wget suivante
wget -r --accept-regex='diffs\-0001[0-9]{2}\.tar\.gz' ftp://ftp.fu-berlin.de/pub/misc/movies/database/diffs/
wget acquiert sans discrimination tous les fichiers du répertoire ftp://ftp.fu-berlin.de/pub/misc/movies/database/diffs/ .
Je me demande si quelqu’un pourrait dire ce que j’ai peut-être mal fait?
Je lis dans la page de manuel de wget
:
--accept-regex urlregex --reject-regex urlregex Specify a regular expression to accept or reject the complete URL.
et notant qu’il mentionne l’URL complète (par exemple, quelque chose comme
ftp://ftp.fu-berlin.de/pub/misc/movies/database/diffs/diffs-000121.tar.gz
)
Je suggère donc (sans l’avoir essayé) d’utiliser
--accept-regex='.*diffs\-0001[0-9][0-9]\.tar\.gz'
(et peut-être donner le --regex-type
approprié)
BTW, pour de telles tâches, je voudrais aussi envisager d’utiliser un langage de script à la Python (ou utiliser libcurl ou curl
)