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 -r
la 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 -i
para 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 --help
para obtener información sobre opciones adicionales.