mikemowgli Posté(e) le 13 juin 2007 Partager Posté(e) le 13 juin 2007 Bonjour, je suis nul en shell (je sais, c'est un tort). Mais je reconnais que c'est parfois très utile, même indispensable. Ici, j'ai besoin de parser l'output de wget pour récupérer un code aléatoire que génère mon serveur voici le truc: mb@pt-mb:~$ wget mon.serveur.be:8079--14:27:41-- http://mon.serveur.be:8079/ => `index.html.1' Résolution de mon.serveur.be... 193.191.6.173 Connexion vers mon.serveur.be|193.191.6.173|:8079... connecté. requête HTTP transmise, en attente de la réponse... 301 Realityserver Status Emplacement: /.SwJq6bjwzKgVJ/kantdreieck/ [suivant] --14:27:41-- http://mon.serveur.be:8079/.SwJq6bjwzKgVJ/kantdreieck/ => `index.html.1' Connexion vers mon.serveur.be|193.191.6.173|:8079... connecté. requête HTTP transmise, en attente de la réponse... 200 OK Longueur: non spécifié [text/html] [ <=> ] 17 197 --.--K/s 14:27:42 (1.12 MB/s) - « index.html.1 » sauvegardé [17197] mb@pt-mb:~$ j'aurais besoin d'un script capable de récupérer le code " .SwJq6bjwzKgVJ " (code qui sera différent à chaque lancement du serveur) dans l'output de wget (et tant qu'on y est, ne pas sauvegarder le fichier index.html qui est récupéré par cette commande). des idées? j'imagine que sed pourra être utile, mais je n'en connais vraiment pas plus... merci à tous EDIT: Résolu Lien vers le commentaire Partager sur d’autres sites More sharing options...
Compte_supprime_74291 Posté(e) le 13 juin 2007 Partager Posté(e) le 13 juin 2007 wget mon.serveur.be:8079|grep Emplacement|cut -f2 -d/ => "grep" pour isoler la ligne qui contient la ligne ou il y a "Emplacement"... => "cut" avec le séparateur "/" pour isoler les champs, dont ont va prendre le deuxième, dans la ligne isolée par grep... Par contre, tu vas perdre la confirmation visuelle que le téléchargement s'est bien passé... mais j'imagine que c'est ce que tu veux? Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 13 juin 2007 Partager Posté(e) le 13 juin 2007 Essaye avec curl -v . Tu recevra un code de déplacement, 301, et surtout le header "Location :" qui dit quelle est l'adresse de la page cible. Lien vers le commentaire Partager sur d’autres sites More sharing options...
mikemowgli Posté(e) le 13 juin 2007 Auteur Partager Posté(e) le 13 juin 2007 Vous êtes des amours!! Nickel super, ça m'a vraiment aidé. Merci à Aefron pour "cut" que je ne connaissais pas et merci à TuXX pour "curl" que je ne connaissais pas non plus (et qui me permet de récupérer ce code sans télécharger de fichier. je mets ma solution: curl -v mon.serveur.be:8079 2>&1 | grep "location" | cut -f2 -d/ en fait, à la fois "wget" et "curl" balancent l'output sur stderr et pas sdtout. Donc, Aefron, le pipe que tu proposes ne marche pas vu que le pipe ne prend en input que ce qui vient de stdout et pas stderr. Ce qui explique la raison de l'astuce "2>&1" (trouvée sur DLFP... vous avais-je dis que j'étais nul en shell scripting? ) à bientôt mes enfants Et merci beaucoup! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.