A voir également:
- [shell] Recuperer 1 valeur entre balises xml
- Recuperer video youtube - Guide
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Comment récupérer un compte facebook piraté - Guide
- Recuperer message whatsapp - Guide
- Classic shell windows 10 - Télécharger - Personnalisation
8 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
27 juil. 2007 à 19:03
27 juil. 2007 à 19:03
Salut,
essaie
lami20j
essaie
echo "<value><string>sip</string></value>" | sed 's/\(<.*>\)\(.*\)\(<*.*>*\)/\2/g'--
lami20j
jipicy
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 901
27 juil. 2007 à 23:04
27 juil. 2007 à 23:04
Salut,
echo "<value><string>sip</string></value>" | sed 's#</.*##;s#.*>##';-))
Merci, ca marche tout bien ! Que représente le caractère # ?? Et si je veut effectuer le traitement sur un ensemble de lignes, est-ce que ce marchera vu qu'il n'y a pas de caractère / pour separer les différentes champs de substitution, comment mettre /g ??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
28 juil. 2007 à 13:19
28 juil. 2007 à 13:19
Salut,
le caractère # c'est un séparateur
s///
s###
c'est pour faciliter l'écriture, en utilisant # tu n'est plus obligé d'echapper les slash (ce qui est égal avec paresse + lisibilité du code :-)) /\/// et avec # donne #/##
la solution de jipicy c'est tout simplement de supprimer les balises au lieu de ta variante qui cherche ce qui est en déhors de balises
toutefois il faut étudier pour les cas plus complexes
le caractère # c'est un séparateur
s///
s###
c'est pour faciliter l'écriture, en utilisant # tu n'est plus obligé d'echapper les slash (ce qui est égal avec paresse + lisibilité du code :-)) /\/// et avec # donne #/##
la solution de jipicy c'est tout simplement de supprimer les balises au lieu de ta variante qui cherche ce qui est en déhors de balises
toutefois il faut étudier pour les cas plus complexes
jipicy
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 901
28 juil. 2007 à 13:20
28 juil. 2007 à 13:20
Salut,
Le "#" est là juste comme caractère de séparation (étant donné que le "/" figure dans le motif, sed laisse le choix du caractère opportun, on aurait tout aussi bien pu choisir un "|" ou un "%", ou tout autre caractère ne figurant pas dans le motif, ceci évite de le protéger par un "\" ).
Le "g" signifie "global", mais uniquement sur la ligne en cours et non sur l'ensemble du fichier. Normalement la commande doit marcher sur plusieurs lignes, mais peut être faudra-t-il sélectionner (par un "/motif/") les lignes devant être traitées...
Donne un exemple de fichier à traiter et ce que tu veux en sortie et on verra d'adapter à ton cas ;-))
Le "#" est là juste comme caractère de séparation (étant donné que le "/" figure dans le motif, sed laisse le choix du caractère opportun, on aurait tout aussi bien pu choisir un "|" ou un "%", ou tout autre caractère ne figurant pas dans le motif, ceci évite de le protéger par un "\" ).
Le "g" signifie "global", mais uniquement sur la ligne en cours et non sur l'ensemble du fichier. Normalement la commande doit marcher sur plusieurs lignes, mais peut être faudra-t-il sélectionner (par un "/motif/") les lignes devant être traitées...
Donne un exemple de fichier à traiter et ce que tu veux en sortie et on verra d'adapter à ton cas ;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
28 juil. 2007 à 13:23
28 juil. 2007 à 13:23
on se complète bien, hein?! :-))
je te laisse la main, c'est toi l'expert.
je te laisse la main, c'est toi l'expert.
jipicy
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 901
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
28 juil. 2007 à 13:28
28 juil. 2007 à 13:28
Yes on se complète plus que bien même ;-))
Par contre, tous les avis seront les bienvenus, expert ou pas et je suis loin d'en être un, un passionné tout au plus ;-))
Par contre, tous les avis seront les bienvenus, expert ou pas et je suis loin d'en être un, un passionné tout au plus ;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
28 juil. 2007 à 13:21
28 juil. 2007 à 13:21
Le modificateur /g travaille sur une seule ligne et son rôle c'est de modifier toutes les occurences.
Comme je l'ai déjà dit en fonction de la compléxité de ton fichier peut être qu'il faut une autre regex.
Comme je l'ai déjà dit en fonction de la compléxité de ton fichier peut être qu'il faut une autre regex.
ok pour les # et le g, je croyais que c'etait pour tout un fichier. Je vais déjà une sélection des lignes à récupérer :
| egrep "(<name>.*</name>|<value>.*</value>)"
J'ai pas d'exemple de fichier sous la main, je traite le résultat d'un échange xmlrpc, le serveur avec lequel je communique est au boulot. Je verrai lundi si l'expression régulière convient à mes données.
Merci beaucoup en tout cas :)
Bonne soirée et bon week-end
| egrep "(<name>.*</name>|<value>.*</value>)"
J'ai pas d'exemple de fichier sous la main, je traite le résultat d'un échange xmlrpc, le serveur avec lequel je communique est au boulot. Je verrai lundi si l'expression régulière convient à mes données.
Merci beaucoup en tout cas :)
Bonne soirée et bon week-end