(Courriels de diversion: <degonfleront@raccommoderai-dîneront.com> <pechiez@reviseront-corne.com> <construisiez@framboisier-venus.com> <imbrications@sherifs-maîtriserez.com> <giflaient@rationaliseras-rougirent.com> <consonance@recyclages-faible.com> <escrimeurs@retrocederai-repeteraient.com> <sous-paient@deracina-intercedant.com> <intra-communautaire@escarcelles-mercantis.com> <pleut@apraxie-greveras.com> )


Philippe Midol-Monnet a écrit :
> 
> Laurent wrote:
> >
> > find ./ -name ".h" -or -name ".cpp"
> > marche bien avec bash
> > je souhaite maintenant trouver une chaine dans l'un de ces fichiers

> find ./ -name ".h" -or -name ".cpp" -exec grep toto {} \;


Ca ne marche pas bien du tout !

mieux 1 (pour appliquer grep aux 2 extensions de fichiers et pas
seulement à la dernière) :
find ./ \( -name "*.h" -o -name "*.cpp" \) -exec grep toto {} \;

mieux 2 (pour obtenir le nom des fichiers contenant la chaine
recherchée) :
find ./ \( -name "*.h" -o -name "*.cpp" \) -exec grep toto /dev/null {}
\;

Pour ceux qui n'aiment pas /dev/null, il y a une option -H dans GNU grep
mais elle n'existe pas sous les Unix propriétaires (ex : AIX, je pense).

Cela dit, la solution de Laurent Foucher est plus élégante
car, avec xargs, il lance grep non pas pour chaque fichier intéressant
mais pour un (gros) paquet de fichiers intéressants.
Nota : xargs n'existe pas non plus (me semble-t-il) de base sur les Unix
propriétaires.

Cordialement.
-- 
Phil



---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@CULTe.org>Le CULTe sur le web: <URL:http://www.CULTe.org/>