Egrep & ET logique
Résolu
Bonjour,
Je suis à la recherche d'une solution toute simple pour faire un egrep avec expression contenant un ET.
example
echo "coucou---------test" | egrep -e "coucou&test"
---> coucou---------test
Cela marche bien avec un OU logique symbolisé par |
J'aimerais bien avoir le ET en une seule et même expression
Je sais qu'on pourrait avoir la solution avec un
echo "coucou---------test" | egrep -e "coucou" | egrep -e "test"
, mais j'aimerais éviter cette solution.
(une précision, je suis sur Solaris 9)
Merci d'avance.
Gunt.
Je suis à la recherche d'une solution toute simple pour faire un egrep avec expression contenant un ET.
example
echo "coucou---------test" | egrep -e "coucou&test"
---> coucou---------test
Cela marche bien avec un OU logique symbolisé par |
J'aimerais bien avoir le ET en une seule et même expression
Je sais qu'on pourrait avoir la solution avec un
echo "coucou---------test" | egrep -e "coucou" | egrep -e "test"
, mais j'aimerais éviter cette solution.
(une précision, je suis sur Solaris 9)
Merci d'avance.
Gunt.
Configuration: Windows XP Internet Explorer 6.0
5 réponses
-
WebmasterEt avc ça ?
(\<test\>.*\<coucou\>|\<coucou\>.*\<test\>)
ça reste simple, et ça evite les "coucou coucou", ou autre "test test"
A plus
Edit: arf :( -
Modérateur
jp@MDK:~/tmpfs ssh$ cat essai coucou tout seul test tout seul coucou et test ensemble test et coucou encore une fois test seul coucou seul aussi ici coucou et là test conjointement là coucou et coucou et ici test et test jp@MDK:~/tmpfs ssh$ egrep 'test.*coucou|coucou.*test' essai coucou et test ensemble test et coucou encore une fois ici coucou et là test conjointement jp@MDK:~/tmpfs ssh$;-))
-
Hello,
Merci pour vos réponses !
En revanche
egrep 'coucou.*test' ne trouvera que "coucoublablatest" et non "testblablacoucou"
et
egrep '(test|coucou).*(test|coucou)' essai
trouvera "coucoublablacoucou" alors que test n'y figure pas :o) !
Je pense qu'il va falloir que j'enchaine les greps... :o(
merci pour votre aide.
@+
Gunth. -
ModérateurSalut,
Une solution...egrep '(test|coucou).*(test|coucou)'
Ce qui donne :jp@MDK:~/tmpfs ssh$ cat essai coucou tout seul test tout seul coucou et test ensemble test et coucou encore une fois test seul coucou seul aussi ici coucou et là test conjointement jp@MDK:~/tmpfs ssh$ egrep '(test|coucou).*(test|coucou)' essai coucou et test ensemble test et coucou encore une fois ici coucou et là test conjointement jp@MDK:~/tmpfs ssh$
;-))
-
-
Modérateur@lami20jJ'ai anticipé au cas ou, peut être pour rien d'ailleurs ;-))
-
-
ModérateurSalut,
en fait tu n'as pas besoin de ET quand la recherche se fait sur la même ligne
il suffit d'utiliser le métacartère point . qui signifie n'importe quelle caractère quantifié par *egrep 'coucou.*test'
--
106485010510997108