grep -r (o -R) no busca dentro de subcarpetas

grep -r (o -R) no busca dentro de subcarpetas

Ha pasado algún tiempo desde que no uso Linux, sino Windows. En Windows, cada vez que quiero buscar una cadena en archivos y archivos dentro de subcarpetas, lo hago (por ejemplo, archivos cs)

findstr /s /i /n "Thepattern" *.cs

Últimamente descubrí que puedes usar grep en MINGW64 que se instala cuando usas Git. Así que lo intenté

grep --color -n -r "Thepattern" *.cs

Pero aunque puse -rla búsqueda no incluye los subdirectorios.

¿Qué estoy haciendo mal con grep? y como deberia ser?

EDITAR: Anaksunaman me proporcionó la respuesta correcta:

grep --color -n -r --include=*.cs "Thepattern"

y varias otras opciones :) ¡Gracias!

Respuesta1

Descubrí que puedes usar grep en MINGW64 que se instala cuando usas Git.

Supongo que te refieres a Git Bash.

¿Qué estoy haciendo mal con grep? ¿Y cómo debería ser?

Deberías probar esto:

 grep --color -n -r --include=*.cs "ThePattern"

--include=debería venir después -r. Esto limitará los resultados a archivos que terminen en ".cs". También puede especificar un directorio si lo desea, por ejemplo:

grep --color -n -r --include=*.cs "ThePattern" ~/some/directory/'with spaces'

En este caso, ~se refiere a su carpeta de perfil de usuario en Windows.

Además, suponiendo que "ThePattern" es una cadena literal, es posible que deba incluirla -ipara que no se distinga entre mayúsculas y minúsculas, por ejemplo:

 grep --color -n -i -r --include=*.cs "ThePattern"

De lo contrario, "ThePattern" no es lo mismo que, por ejemplo, "Thepattern" y es posible que no obtenga ningún resultado.

Tenga en cuenta que siempre puede utilizar grep --helppara obtener información sobre opciones adicionales.

información relacionada