Fran�ois TOURDE a �crit, mercredi 4 mai 2005, � 15:09 :
[...]
> Ouais, mais pour "nier" une expression r�guli�re compl�tement, c'est
> pas toujours la joie :) ... Dans son cas, l'option -v est la plus
> adapt�e. 

D�s qu'on souhaite  une condition logique un peu  complexe, awk est plus
indiqu� : pour extraire les lignes avec Invalides mais pas 14-18,

 awk '/Invalides/ && ! /14-18/'

au lieu de

 grep ^Invalides | grep -v 14-18

(on peut se demander pourquoi -v a �t� choisi pour la n�gation).

Sed peut le faire aussi, bien s�r

 sed -ne '/Invalides/{/14-18/d;p}'
 sed -e '/Invalides/!d;/14-18/d'

mais c'est moins lisible � mon go�t.

> Sinon, tu es oblig� de faire des trucs du genre:
> 
> ^([^I]|I[^n]|In[^v]|...|Invali[^d]|I$|In$|...|Invali$)*$
>
> Ce qui est tout sauf sexy ;)
 
Disons que  c'est /th�oriquement/ faisable :).   De m�me, un  ET dans le
d�sordre ne peut gu�re d�passer deux termes :

 grep -E '(tata.*titi|titi.*tata)'

La traduction en un seul grep de

 awk '/tata/ && /titi/ && /toto/ && /tutu/'

est laiss�e en exercice.
-- 
Jacques L'helgoualc'h


-- 
Pensez � lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez � rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Répondre à