![Búsqueda recursiva de texto específico dentro de archivos específicos pero solo en carpetas específicas](https://rvso.com/image/1345296/B%C3%BAsqueda%20recursiva%20de%20texto%20espec%C3%ADfico%20dentro%20de%20archivos%20espec%C3%ADficos%20pero%20solo%20en%20carpetas%20espec%C3%ADficas.png)
Tengo una estructura de carpetas anidadas que contiene muchas carpetas y archivos.
¿Cómo busco un patrón dentro de archivos, por ejemplo, "texto de muestra", pero solo si el nombre del archivo coincide con un patrón (por ejemplo, solo busco dentro de archivos con extensión .txt) y finalmente el nombre de la carpeta que lo contiene debe coincidir con otro patrón? (por ejemplo, "datos").
Estoy seguro de que podría escribir un script de shell para hacerlo, ¡pero estoy seguro de que existen frases ingeniosas que me enseñarán cosas nuevas!
gracias de antemano
Respuesta1
Como dice que tiene una estructura de carpetas anidadas, creo que *data*/*txt
no hará lo que necesita. yo sugiero
find . –type d –name "*data*" –exec sh –c "grep sampletext /dev/null {}/*.txt" \;
Está /dev/null
ahí para forzar grep
la visualización del nombre del archivo incluso cuando se ejecuta en un directorio que solo tiene un .txt
archivo.