[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