chaine='# base <dc=mon,dc=domaine> with scope subtree'
et je veux recuperer « dc=mon,dc=domaine ».
Donc il y a plusieurs possibilité comme grep -Eo ‹ <[=,a-z]> › | cut -d< -f 1 | cut -d -f 1 ou tr gnagna mais moi ce que je voulais c’est un sed.
J’avais donc fait :
echo $chaine |sed 's/\<[,=a-z]*\>/\1/'
mais il est méchant, il me dit « sed: -e expression #1, char 16: invalid reference \1 on `s’ command’s RHS ».
Ouiiiii mais eug … normalement le \1 c’est ce qui a matché non ?
donc j’ai essayé avec plusieurs motifs, je peux vouloir le remplacer par toto \1 toto , et donc après tout pourquoi pas par « » \1 « » ?
Cela dit merci, j’ai adapté (je les veux PAS les < et >) et saibon
Je subsitue (oui oui, c’est du conditionnel ça monsieur) le com=mon,com=domaine dans ‘# base <dc=mon,dc=domaine> with scope subtree’ par … RIEN << ce qui a matché >> RIEN
[quote=“kineox, post:6, topic: 47768”]Ce n’est pas plutôt ça que tu veux ?
ça ça me renvoie “domaine”, et moi j’avais besoin de vraiment ce qui est entre chevron (donc dc=mon,dc=domaine) MAIS je remarque que toi tu arrives à utiliser \1 alors que moi ça jette …
Bah écoute je ne sais pas comment tu fais pour avoir ça… Ici (aussi bien sur Mac OS X que sur OpenBSD) j’ai :
$ echo '# base <dc=mon,dc=domaine> with scope subtree' | sed -e 's/.*\<\([a-z=,]*\)\>.*/\1/'
dc=mon,dc=domaine
Et comme l’a indiqué doumdoum et comme tu aurais pu le voir si tu avais lu ma regexp, il faut utiliser les parenthèses pour matcher après avec # où # appartient à [1,9].
Tu confonds peut-être avec le symbole & (qui semble spécifique à sed) ?
Je t’invite fortement à lire sed(1) et re_format(7) sur ton système Unix le plus proche.
Edit : visiblement gsed n’aime pas le < et > (que j’avais copié direct de ta première regexp). Il faut donc utiliser sed -e ‹ s/.<([a-z=,])>.*/\1/ ›
Pourtant re_format(7) dit :
Mais il semble que gsed ne supporte pas toutes les expressions régulières. Merci GNU !
[quote=« fser, post:11, topic: 47768 »]et sinon, j’avais testé avec des parentheses de capture.
et comment je fais ? je sais pas :crying:
je teste sur ma machine perso asap
[quote=« fser, post:14, topic: 47768 »]ya l’option"-r, --regexp-extended" sous nux.
et si je l’utilise, j’ai la même erreur que moi.[/quote]
J’ai testé avec cette option mais j’avais le même résultat que sans.
Je ne comprends pas bien, tu as réussi à utiliser ma regexp au final ou pas ?
[quote=“kineox, post:15, topic: 47768”]J’ai testé avec cette option mais j’avais le même résultat que sans.
Je ne comprends pas bien, tu as réussi à utiliser ma regexp au final ou pas ? :)[/quote]
Tu as bien utilisé la deuxième version de la regexp qui est dans l’edit à la fin de mon post, n’est-ce pas ?
$ sed --version
GNU sed version 4.1.5
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.
$ echo '# base <dc=mon,dc=domaine> with scope subtree' | sed -e 's/.*<\([a-z=,]*\)>.*/\1/'
dc=mon,dc=domaine