¿Existe un comando que permita buscar una palabra clave en archivos en un directorio con extensión específica?
La cadena grep -irn "string" ./pathofrece una búsqueda recursiva de todos los archivos del directorio ./path. Mi requisito específico es buscar en todos los archivos ./pathcon una extensión como*.h

"*.h"comillas.foobar.hen el directorio actual e inténtelo de nuevo.S et (activar) la sh ell opt ion
globstarcon el comandoEsto hará
**que un componente de nombre de archivo signifique todo aquí y debajo. Entoncespath/**significa todo en elpathdirectorio y sus subdirectorios . (No necesita escribir./aquí). Luego puede usarpara buscar todos los
.harchivos en y debajopath.Puede u NSET con opciones
shopt -u.fuente
fuente
-exec... también+es bueno."string"en su respuesta!Si puede instalar algo en su máquina, sugiero usar ack .
Puede hacer exactamente lo que necesita con él y mucho más. Para su caso de uso, puede hacer:
Para encontrar qué filtros de archivos son compatibles de forma nativa, ejecute el comando
ack --help=type.fuente
¿Qué hay de este?
Explicación:
findcomandofindcomandofindcon-exec, este es el especificador de fin de comandofuente
"*.h"funciona Pensé que tenía que ser así'*.h'Si está utilizando gnu grep, entonces tiene una bandera que hace exactamente lo que quiere:
aunque no creo que esté disponible en otros greps.
fuente