[gull] Petite question grep

Nicolas Borboën nbo at donax.ch
Wed Nov 18 15:33:52 CET 2009


Daniel Cordey said the following on 11/18/2009 03:02 PM:
> On Wednesday 18 November 2009 13:54:30 Nicolas Borboën wrote:
>
>   
>> Comment puis-je exprimer un "et" dans le pattern de grep ou comment
>> fusionner le résultat de deux grep?
>>     
>
> On peut tres bien "enfile" la sortie d'un grep comme input de l'autre avec un 
> simple pipe.
>
> 	grep a <files> | grep b
>
> Ceci donnera les *lignes* qui satisfont aux deux conditions ! En effet, le 
> deuxieme grep ne verra que les lignes qui lui seront passees. Ce qui revient 
> (gross-modo) a ecrire :
>
> 	grep 'a*b' <files>
>
> Or, si j'ai bien compris le probleme, on veut avoir la liste des fichiers qui 
> contiennet expr1 & expr2, mais pas forcement sur *la meme ligne*. Juste ?
>   
Juste!
> Si c'est le cas, je propose une ecriture marrante, mais qui implique que les 
> noms de fichiers ne contienent pas d'espaces (sinon il fauit utiliser xargs). 
> je dis bien... c'est juste interessant... :-)
>
> grep "expr2" $(grep -rilw "expr1" * 2>/dev/null | sed 's/:.*$//' | sort -u)
>   
OK, je potasse et je repasse!

Merci!

A+
Nicolas


More information about the gull mailing list