#1 Le 07/02/2007, à 10:37
- paul@gloomoot
[Résolu] [AWK] Problème de séparateur
Bonjour.
Je suis en train d'écrire un script shell qui lit un fichier xml.
Je voudrais récupérer ce qu'il y a entre 2 balises XML du style :
<BALISE>value</BALISE>
Mon idée était d'utiliser awk avec comme séparateur de champs "<" ou ">" et prendre $2 comme ça :
value=`awk 'BEGIN{FS="<|>"} /^<BALISE>/{print $2}' nom_du_fichier_xml`;
Le truc c'est que je sais pas pourquoi, mais j'ai l'impression que le FS="<|>" ne marche pas et qu'il considère uniquement "<" comme séparateur puisque mon output est, quand je fais :
echo $value
j'arrive au résultat suivant :
BALISE>value
Quelqu'un peut-il m'éclairer?
Dernière modification par paul@gloomoot (Le 07/02/2007, à 15:00)
http://leblogdepaul.free.fr
Hors ligne
#2 Le 07/02/2007, à 13:15
- qqun
Re : [Résolu] [AWK] Problème de séparateur
un truc du style ca marche pas ?
value=`awk 'BEGIN{FS="<BALISE>|</BALISE>"}{print $2}' nom_du_fichier_xml`;
echo $value
#3 Le 07/02/2007, à 13:52
- qqun
Re : [Résolu] [AWK] Problème de séparateur
ou plutot ca
VBALISE="BALISE"
value=`awk 'BEGIN{RS="<|>"}!/'$VBALISE'/{print $0}' nom_du_fichier_xml`;
echo $value
#4 Le 07/02/2007, à 14:56
- paul@gloomoot
Re : [Résolu] [AWK] Problème de séparateur
En fait je me suis démerdé comme ça :
value=`awk 'BEGIN{FS="<"} /^<BALISE>/{split($2,val,">"); print val[2]}' nom_du_fichier_xml`;
http://leblogdepaul.free.fr
Hors ligne
#5 Le 07/02/2007, à 14:59
- paul@gloomoot
Re : [Résolu] [AWK] Problème de séparateur
Merci en tout cas de l'aide mais je ne pense pas que tes idées auraient :
La première parce que pour une raison inconnue, mon awk n'arrive pas a considérer plusieurs séparateurs et ne peut supporter que des séparateurs mono caractère
La deuxième parce qu'il aurait fallu que je fasse une variable pour chaque type de balise dont je veux récupérer la valeur
Merci en tout cas, parce que personne ne me répondait et je me sentais mal aimé ^^
http://leblogdepaul.free.fr
Hors ligne