IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

recupérer les données de wget


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Par défaut recupérer les données de wget
    Bonjour à tous,

    Voilà, je fais un petit script qui télécharge avec wget tous les urls lister dans un fichier texte, et écrit un fichier historique.

    Malgres la lecture du man de Wget je n'arrive pas a récupérer la taille du fichier qu'il télécharge, ainsi que le nom sous lequel il sera sauvegardé.
    Pourtant toutes ces données sont écrit lors de l'utilisation de cette fonction en mode verbose.

    comande:
    wget -v http://www.site.com/fichier.jpg

    résultat:
    --2008-05-23 00:23:28-- http://www.site.com/fichier.jpg
    Résolution de www.site.com... 123.456.78.999
    Connexion vers www.site.com|123.456.78.999|:80...connecté.
    requête HTTP transmise, en attente de la réponse...200 OK
    Longueur: 56389 (55K) [image/jpeg]
    Saving to: `fichier.jpg.23'

    100%[======================================>] 56 389 43,3K/s in 1,3s

    2008-05-23 00:23:30 (43,3 KB/s) - « fichier.jpg.23 » sauvegardé [56389/56389]
    Je voudrais donc les données en rouge.
    De plus j'ai tenté de suivre la piste sed, mais le pipe apres wget (wget | sed expr_reg) n'a pas l'air de fonctionner.

    Merci d'avance pour votre aide.
    Aurevoir.

  2. #2
    Membre émérite
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Par défaut
    A mon avis c'est parce que wget écrit sur stderr et non stdout. Il faut donc faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wget 2>&1 | sed expr_reg
    Au pire utilise -o log.txt pour avoir les logs dans log.txt

    Et sinon pourquoi ne ferais-tu pas l'inverse, c'est-a-dire forcer wget a écrire dans un fichier que tu lui donne (avec -O). Comme ca tu sais quel fichier il est sensé écrire.

    Enfin, des fois la taille du fichier n'est pas connue d'avance ! Seule la fin (correcte) de wget te permet de connaître la taille (ligne d'avancement) mais autant regarder la taille du fichier écrit.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Par défaut
    Salut D[r]eadLock,

    Merci de m'apporter ton aide.

    Ta solution 2>&1, je ne l'ai pas comprise et elle n'a malheuresement pas l'air de fonctionner.
    Par exemple:

    wget -v http://www.site.com/fichier.jpg 2>$1 | grep "Saving to:"
    ne renvoie rien alors que cela est bien présent cf post plus haut

    de plus
    wget -v http://www.site.com/fichier.jpg 2>$1>>fichier"
    ne fonctionne pas

    le problème avec le -o logfile.txt, c'est que je perd l'affichage dans la console de l'avancement. l'idéale, serait une solution qui m'affiche et en meme temps m'écrit dans le fichier.
    Un melange de sans l'option -o et l'option -o

    Est ce possible ?

    Merci encore de ton aide

    Aurevoir

  4. #4
    Membre émérite
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Par défaut
    Ce n'est pas $1 mais &1. C'est pour dire de rediriger stderr dans stdout.
    Par contre si tu veux mettre dans un fichier (il faut le mettre apres)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wget... >> fichier 2>&1
    Tu peux utiliser tee pour afficher a l'ecran et mettre dans un fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    wget ... 2>&1 | tee fichier

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Par défaut
    Merci beaucoup D[r]eadLock pour ta précieuse aide .

    je ne connaissais pas la commande 'tee' c'est utile


    J'ai donc pris pour solution:

    wget -v -P $repertoire_destination --progress=bar:force $url 2>&1 | tee ./log_script_dl.txt
    Cette solution me permer à la fois d'avoir l'affichage de la progression dans a console bash ainsi que dans le fichier texte.

    Merci encore, bonne continuation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recupérer les données d'une boucle
    Par mfontan dans le forum MATLAB
    Réponses: 18
    Dernier message: 07/01/2008, 13h55
  2. [windev 5.5] Recupérer les données de deux fichiers
    Par nemosfib dans le forum WinDev
    Réponses: 3
    Dernier message: 27/07/2007, 07h21
  3. recupérer les données dans une iframe
    Par jamel3000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/06/2007, 19h49
  4. Recupérer les données d'une chaine
    Par claralavraie dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/07/2006, 10h34
  5. Recupérer les données d'une d'une relation
    Par Tsimplice dans le forum Oracle
    Réponses: 9
    Dernier message: 11/04/2006, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo