Posté(e) le 13 juin 200718 a 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 Modifié le 14 juin 200718 a par mikemowgli
Posté(e) le 13 juin 200718 a 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? Modifié le 13 juin 200718 a par tuXXX Pas de quote inutile
Posté(e) le 13 juin 200718 a 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.
Posté(e) le 13 juin 200718 a Auteur 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!
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.