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

Re: [linux-team] find-grep ou grep-find ?



Personnellement, je fais
find . -name "*.[ch]" -exec grep -il  brol {} \;
Comme ça je reçois le nom de fichier
Mais bon, question de goût :-)

A+,

D

PS: dans le troisième où spécifies-tu la chaîne à rechercher ? J'ai essayer ton
truc malheureusement cela ne marche pas (il doit s'agir d'une conspiration ) :-}


Eric DARCHIS wrote:

> Hello !
>
> Je n'ai pas de question, juste un truc a donner.
>
> Le probleme se pose souvent de faire un grep recursif. Outre des trucs
> genre rgrep, agrep, ..., il est possible d'utiliser find. (plus portable
> quand vous ne pouvez pas recompiler un soft pour faire un bete grep)
>
> Voyons comment chercher "brol" dans les fichiers *.c et *.h a partir du
> repertoire courant et les sous-repertoires.
>
> Permier essai:
> find . -name '*.[ch]' -exec grep -i brol {} \;
> Resultat: ca marche bien mais on ne voit pas le nom du fichier ou on a trouve.
> Pourquoi: Un seul nom de fichier en parametre => pas d'affichage du nom.
> find execute la commande pour chaque fichier separement.
>
> Deuxieme essai:
> grep -i brol `find . -name '*.[ch] -print`
> Resultat: On voit le nom mais (1) on est limite en nombres d'arguments
> (eviter les gros repertoires) et (2) il faut attendre la fin du find pour
> que le grep commence.
> Note: le find est entoure de BACKQUOTES, apostrophes inverses.
>
> Troisieme essai (ce que j'utilise):
> find . -name '*.[ch]' -exec grep /dev/null {} \;
> Resultat: on a le nom du fichier et le find et le grep fonctionnent en meme
> temps.
> Pourquoi: grep a 2 arguments dont un ne contient rien (donc pas de
> resultat) et affiche donc le nom s'il trouve dans le deuxieme (le notre).
>
> Notes:
> - xargs fait sensiblement la meme chose que les backquotes.
> - veuillez reagir sur la facon de faire en mail prive, je posterai un
> resume sur la ML.
>
> A+
>
> Eric.
>
> ---------
> Visit the Linux Supertore Online: http://www.redcorp.com !
> If you want to be deleted from the list, send a mail to
> majordomo@rtfm.be with "unsubscribe linux-team" in the body.
> Archive of the list: http://tania.be.linux.org/

---------
Visit the Linux Supertore Online: http://www.redcorp.com !
If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.
Archive of the list: http://tania.be.linux.org/