[gull] Petite question grep

Félix Hauri felix at f-hauri.ch
Wed Nov 18 18:08:01 CET 2009


On Wed, Nov 18, 2009 at 05:44:22PM +0100, Marc Mongenet wrote:
> > De même que tu ne fera qu'un fork en tapant:
> >
> >   find . -type f -print0 | xargs -0 grep -iwZl "expr1" | xargs -0 grep -iwl "expr2"
> > ...
> > que $(), mais dans tous les cas ``-print0|xargs -0'' t'affranchis des
> > problèmes de noms de fichiers non-conventionnels).
> >
> >   find . -xdev -type f -exec grep -iwq expr1 {} \; -exec grep -iwq expr2 {} \; -print
> >
> > est la seule syntaxe qui fonctionnera de manière sûre, quelle que soit
> > le taille des répertoires à parcourir (plus longue, mais efficace).
> >
> 
> Tiens, j'aurais juré que xargs permet de s'affranchir de la limite du
> nombre de fichiers.
En fait oui, mais à partir d'un certain volume, tu devras jouer avec --max-procs,
etc. La commande ``find'' est *la* moissonneuse-batteuse  qui te permetra d'être 
fin (-maxdepth, -ipath, \( ... -a ... \), etc ..) dans ta  requête et absolu dans 
la réponse.

Maintenant, fonction du but recherché et du volume à traiter, la
bonne solution est bien souvent une combinaison du tout...

--
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch


More information about the gull mailing list