Jump to content

[RESOLU] petite question de shell scripting


Recommended Posts

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

:francais:

EDIT: Résolu

Link to comment
Share on other sites

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

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? :dd:)

à bientôt mes enfants

Et merci beaucoup!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...