89 votes

Pipe la sortie du chat à cURL pour télécharger une liste de fichiers

J'ai une liste d'URL dans un fichier appelé urls.txt . Chaque ligne contient 1 URL. Je souhaite télécharger tous les fichiers simultanément à l'aide de cURL. Je n'arrive pas à obtenir le bon one-line.

J'ai essayé:

 $ cat urls.txt | xargs -0 curl -O
 

Mais cela ne me donne que le dernier fichier de la liste.

145voto

ghoti Points 14996

Cela fonctionne pour moi:

 $ xargs -n 1 curl -O < urls.txt
 

Je suis dans FreeBSD. Vos xargs peuvent fonctionner différemment.

17voto

user1101791 Points 42

Ou tu pourrais juste essayer ..

chat urls.txt | xargs curl -o

Remarque: vous ne devez utiliser le paramètre -I que si vous souhaitez insérer la sortie cat au milieu d'une commande.

7voto

Stefan Gruenwald Points 494

Voici comment je le fais sur un Mac (OSX), mais il devrait fonctionner de la même manière sur d'autres systèmes:

Ce que vous avez besoin est un fichier texte qui contient les liens pour curl

comme suit:

    http://www.site1.com/subdirectory/file1-[01-15].jpg
    http://www.site1.com/subdirectory/file2-[01-15].jpg
    http://www.site1.com/subdirectory/file3-[01-15].jpg
    .
    .
    http://www.site1.com/subdirectory/file3287-[01-15].jpg

Dans ce cas hypothétique, le fichier texte a 3287 lignes et chaque ligne est de codage pour 15 images.

Disons-nous à sauver ces liens dans un fichier texte appelé testcurl.txt sur le niveau supérieur (/) de notre disque dur.

Maintenant, nous devons aller dans le terminal et entrez la commande suivante dans le shell bash:

    for i in `cat /testcurl.txt` ; do curl -O $i ; done

Assurez-vous que vous utilisez les tiques (`) Assurez-vous également que le drapeau (-O) est un capital, O et PAS un zéro

avec l'option-O drapeau, le nom de fichier d'origine sera pris

Bon téléchargement!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X