[gull] Petite question grep
Daniel Cordey
dc at mjt.ch
Wed Nov 18 15:02:16 CET 2009
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 ?
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)
dc
More information about the gull
mailing list