Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/04/2011, 16h33   #1
Invité régulier
 
Inscription : février 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 9
Points : 9
Points : 9
Par défaut aide sur script shell via XML

Bonjour,

Voici la situation :
une page web directement sur internet me retourne le résultat suivant :
en utilisant curl de préférence sinon wget
Code :
1
2
3
4
5
6
<station>
  <available>8</available>
  <free>16</free>
  <total>25</total>
  <ticket>1</ticket>
</station>
Ce que j'aimerais dans un fichier de resultat.txt c'est :
Code :
1
2
3
4
5
6
Station X:
----------
 
Available = 8
Free = 16
Total = 25
Les valeurs de la page web en question change tout le temps mais ne dépasseront jamais 25
Ne vous préoccupé pas du résultat car il doit reprendre les valeurs de chaque champs du XML
roulitto est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/04/2011, 17h09   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 534
Points : 7 743
Points : 7 743
utilises les substitutions de sed pour récupérer les informations qui t'intéressent..


exemple :
Code :
sed "/station/ s/.*<\(.*\)/.*>/\1"
élimine les "<" et ">" autour de la balise station

pareil pour free
Code :
sed "/free/ s/.*>\([0-9].*\)</Available = \1/"
je te laisse mettre en forme et valider les regexp qui iront bien mais tu as le principe.
si tu y arrives pas montre ce que tu as fait on corrigera au fur et à mesure
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 17h27   #3
Invité régulier
 
Inscription : février 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 9
Points : 9
Points : 9
Merci de ton aide.

Le script ne finit pas et pas de retour ni d'erreur.
je suis obliger de faire un "ctrl+c" pour killer.

Mon script en entier :
Code :
1
2
page=$( curl -s http://www.velib.paris.fr/service/stationdetails/22404 --silent )
sed "/free/ s/.*>\([0-9].*\)</Available = \1/" >>velib.txt
Mon "velib.txt" est vide.
roulitto est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/04/2011, 18h08   #4
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 153
Points : 4 153
Bonjour,

XSLT serait un meilleur langage pour traiter des fichiers XML
...
?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/04/2011, 22h05   #5
Invité régulier
 
Inscription : février 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 9
Points : 9
Points : 9
Bonsoir,

Un exemple de code pour mon besoin?


Citation:
Envoyé par N_BaH Voir le message
Bonjour,

XSLT serait un meilleur langage pour traiter des fichiers XML
...
?
roulitto est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h54.


 
 
 
 
Partenaires

Hébergement Web