mikemowgli Posted June 13, 2007 Share Posted June 13, 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 Link to comment Share on other sites More sharing options...
Compte_supprime_74291 Posted June 13, 2007 Share Posted June 13, 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? Link to comment Share on other sites More sharing options...
tuXXX Posted June 13, 2007 Share Posted June 13, 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. Link to comment Share on other sites More sharing options...
mikemowgli Posted June 13, 2007 Author Share Posted June 13, 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! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.