(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/>