[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: chercher un mot dans le contenu de chaque fichier récursivement dans un repertoire



Le lundi 12 février 2007 à 18:16 +0100, Thierry B a écrit :
> Bonjour,
> 
> Comme je vous l'avais dit dans un précédent message, à chaque demarrage
> de kde, il me lance tout seul wengophone, et c'est barbant à la fin.
> 
> Et puis bien entendu, dans le logiciel, aucune case pour lui dire qu'il
> ne se lance pas tout seul au demarrage de kde lol...
> 
> Donc, je me suis dit qu'une piste serait de voir ou kde, stocke le fait
> qu'il faut le lancer à chaque demarrage de celui-ci.
> 
> Mais quand je veux chercher à partir de mon home, l'ensemble des
> fichiers qui contiennent le mot "qtwengophone", ca ne marche pas, mais
> pourtant, il me semblait bien que ma syntaxe est correcte...
> 
> $ find . -type f|xargs grep "qtwengophone"
> xargs: guillemets simple non pairés; par défaut les guillemets sont
> particuliers à xargs à moins d'utiliser l'option -O

Étrange, cette commande devrait fonctionner, et elle le fait d'ailleurs
chez moi...

Ma première réaction a été de penser qu'il faudrait utiliser le
paramètre -exec de find:
find . -type f -exec grep "qtwengophone"

mais après essais, j'ai l'impression que ton utilisation est plus
rapide, et ce n'est pas faux. C'est d'ailleurs étonnant, quelqu'un
a-t-il une explication ?

$ time find . -type f | xargs grep "tool"
real    0m26.702s
user    0m1.196s
sys     0m1.392s

$ time find . -type f -exec grep "tool" {} \;
real    0m36.084s
user    0m3.752s
sys     0m6.676s

Mais je te rassure, il y a bien plus simple : grep -r, ou, mieux encore,
rgrep (2 carctères de moins si l'on inclut l'espace)
Un peu plus rapide, mais le gain de temps est surtout appréciable lors
de la saisie de la commande ;-)

$ time rgrep "tool" *
real    0m22.834s
user    0m1.240s
sys     0m1.540s

@++
Julien

PS: tests faits sur 8256 fichiers contenus dans 1792 répertoires, pour
un total de 1.1GB, dans gnome-terminal (avec coloration syntaxique de
grep)




Reply to: