Para una búsqueda de archivos simple, puede usar -l
de grep y -r
opciones:
grep -rl "mystring"
Toda la búsqueda se realiza mediante grep. Por supuesto, si necesita seleccionar archivos en algún otro parámetro, encuentre la solución correcta:
find . -iname "*.php" -execdir grep -l "mystring" {} +
El execdir
La opción construye cada comando grep por cada directorio y concatena los nombres de archivo en un solo comando (+
).
La opción estándar grep -l
(que es una L minúscula) podría hacer esto.
Del estándar Unix:
-l
(The letter ell.) Write only the names of files containing selected
lines to standard output. Pathnames are written once per file searched.
If the standard input is searched, a pathname of (standard input) will
be written, in the POSIX locale. In other locales, standard input may be
replaced by something more appropriate in those locales.
Tampoco necesitas -H
en este caso.
Desde el grep(1)
página man:
-l, --files-with-matches Suppress normal output; instead print the name of each input file from which output would normally have been printed. The scanning will stop on the first match. (-l is specified by POSIX.)