[bash] boucle wget
Fermé
Laurane85
Messages postés
7
Date d'inscription
mercredi 7 septembre 2016
Statut
Membre
Dernière intervention
11 septembre 2016
-
Modifié par mamiemando le 8/09/2016 à 10:23
Laurane85 Messages postés 7 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 11 septembre 2016 - 11 sept. 2016 à 20:19
Laurane85 Messages postés 7 Date d'inscription mercredi 7 septembre 2016 Statut Membre Dernière intervention 11 septembre 2016 - 11 sept. 2016 à 20:19
10 réponses
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
8 sept. 2016 à 10:21
8 sept. 2016 à 10:21
Bonjour,
Il me paraît plus simple d'utiliser l'option -O pour dire à wget où écrire le fichier une fois le répertoire de destination créé.
Ensuite pour répondre à ton problème, il suffit d'écrire un script shell capable de lire n paramètres d'entrées :
https://forums.commentcamarche.net/forum/affich-37619992-bash-les-arguments-parametres
Bonne chance
Il me paraît plus simple d'utiliser l'option -O pour dire à wget où écrire le fichier une fois le répertoire de destination créé.
Ensuite pour répondre à ton problème, il suffit d'écrire un script shell capable de lire n paramètres d'entrées :
https://forums.commentcamarche.net/forum/affich-37619992-bash-les-arguments-parametres
Bonne chance
Laurane85
Messages postés
7
Date d'inscription
mercredi 7 septembre 2016
Statut
Membre
Dernière intervention
11 septembre 2016
8 sept. 2016 à 10:40
8 sept. 2016 à 10:40
Ok merci pour ta réponse
Pour le wget -O pas de problème par contre pour la boucle je galère si vous avez une idée je suis preneur
Pour le wget -O pas de problème par contre pour la boucle je galère si vous avez une idée je suis preneur
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
8 sept. 2016 à 13:16
8 sept. 2016 à 13:16
hello
exemple de boucle, on termine avec une réponse vide
exemple de boucle, on termine avec une réponse vide
i=1; while read -p "ENTRER le sufixe de l'URL : " var && [[ -n "$var" ]]; do wget -O fichier$((i++)) http:/xxx/$var; done
Utilisateur anonyme
8 sept. 2016 à 14:15
8 sept. 2016 à 14:15
ou encore :
#!/bin/bash
while [ "$#" -gt 0 ];do echo "wget http://$1"; shift; done
$./sc.sh placard maison singe
wget http://placard
wget http://maison
wget http://singe
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Laurane85
Messages postés
7
Date d'inscription
mercredi 7 septembre 2016
Statut
Membre
Dernière intervention
11 septembre 2016
8 sept. 2016 à 23:46
8 sept. 2016 à 23:46
Merci pour l'aide les gars
Mais comment je peux intégrer une boucle sur la creation de plusieurs dossiers après avoir telecharger mes fichiers des differentes urls
Exemple : fichier1 telechargé va dans le dossier1
Fichier dans dossier2
Etc
Merci pour l'aide
Mais comment je peux intégrer une boucle sur la creation de plusieurs dossiers après avoir telecharger mes fichiers des differentes urls
Exemple : fichier1 telechargé va dans le dossier1
Fichier dans dossier2
Etc
Merci pour l'aide
En reprenant le code de dubcek et en ajoutant un mkdir dossier
Problèmes éventuels : les téléchargements vont s'effectuer un à un, l'un après l'autre ; pas de test si problème de création du dossier et/ou du fichier, rien de prévu si le wget échoue ; etc.
i=1;
while read -p "ENTRER le suffixe de l'URL : " var && [[ -n "$var" ]];
do
mkdir dossier$i
wget -O dossier$i/fichier$i "http:/xxx/$var"
i=$((i++))
done
Problèmes éventuels : les téléchargements vont s'effectuer un à un, l'un après l'autre ; pas de test si problème de création du dossier et/ou du fichier, rien de prévu si le wget échoue ; etc.
Laurane85
Messages postés
7
Date d'inscription
mercredi 7 septembre 2016
Statut
Membre
Dernière intervention
11 septembre 2016
9 sept. 2016 à 10:14
9 sept. 2016 à 10:14
Merci pour ton aide gnu je testerais ca soir
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
9 sept. 2016 à 17:27
9 sept. 2016 à 17:27
Salut,
Parfois il existe des outils tout en un, il suffit juste de se pencher dans les pages de man.
;-))
Parfois il existe des outils tout en un, il suffit juste de se pencher dans les pages de man.
cURLpeut faire bien mieux que
wget;-)
$ ls
$ curl -n ftp://xxxxxx.fr/Test/[1-3].png --create-dirs -o "rep#1/#1.png"
[1/3]: ftp://xxxxxx.fr/Test/1.png --> rep1/1.png
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 209k 100 209k 0 0 507k 0 --:--:-- --:--:-- --:--:-- 506k
[2/3]: ftp://xxxxxx.fr/Test/2.png --> rep2/2.png
100 124k 100 124k 0 0 342k 0 --:--:-- --:--:-- --:--:-- 342k
[3/3]: ftp://xxxxxx.fr/Test/3.png --> rep3/3.png
100 202k 100 202k 0 0 500k 0 --:--:-- --:--:-- --:--:-- 500k
$ tree
.
|-- rep1
| `-- 1.png
|-- rep2
| `-- 2.png
`-- rep3
`-- 3.png
3 directories, 3 files
;-))
Laurane85
Messages postés
7
Date d'inscription
mercredi 7 septembre 2016
Statut
Membre
Dernière intervention
11 septembre 2016
11 sept. 2016 à 19:41
11 sept. 2016 à 19:41
malgré ton script gnu- j'ai toujours pas réussi.
#!/bin/bash./
i=1; while read -p ID: var && [[ -n $var ]]; do mkdir dossier$i; wget -i http://url/$var; i=$((i++))
done
Au bout du second téléchargement j'ai le message :
") erreur de syntaxe : opérateur arithmétique non valable (le symbole erroné est "
#!/bin/bash./
i=1; while read -p ID: var && [[ -n $var ]]; do mkdir dossier$i; wget -i http://url/$var; i=$((i++))
done
Au bout du second téléchargement j'ai le message :
") erreur de syntaxe : opérateur arithmétique non valable (le symbole erroné est "
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 418
11 sept. 2016 à 19:57
11 sept. 2016 à 19:57
#!/bin/bash./
i=1; while read -p "ID:" var && [[ -n $var ]];
do mkdir dossier$i;
wget -i http://url/$var;
((i++))
done
Laurane85
Messages postés
7
Date d'inscription
mercredi 7 septembre 2016
Statut
Membre
Dernière intervention
11 septembre 2016
11 sept. 2016 à 20:06
11 sept. 2016 à 20:06
J'ai l'erreur :
./test.sh: ligne 3: erreur de syntaxe près du symbole inattendu « $'\r' »
'/test.sh: ligne 3: `((i++))
./test.sh: ligne 3: erreur de syntaxe près du symbole inattendu « $'\r' »
'/test.sh: ligne 3: `((i++))
Laurane85
Messages postés
7
Date d'inscription
mercredi 7 septembre 2016
Statut
Membre
Dernière intervention
11 septembre 2016
11 sept. 2016 à 20:19
11 sept. 2016 à 20:19
j'ai remplacé par : let i=$((i++))
ca a l'air de faire le taff
Merci à tous !
ca a l'air de faire le taff
Merci à tous !