Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/02/2007, à 11: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, à 16:00)


http://leblogdepaul.free.fr

Hors ligne

#2 Le 07/02/2007, à 14: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, à 14:52

qqun

Re : [Résolu] [AWK] Problème de séparateur

ou plutot ca smile

VBALISE="BALISE"
value=`awk 'BEGIN{RS="<|>"}!/'$VBALISE'/{print $0}' nom_du_fichier_xml`;
echo $value

#4 Le 07/02/2007, à 15: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, à 15: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 hmm

Merci en tout cas, parce que personne ne me répondait et je me sentais mal aimé ^^


http://leblogdepaul.free.fr

Hors ligne