Já faz algum tempo que não uso Linux, mas sim Windows. No Windows sempre que quero procurar uma string em arquivos e arquivos dentro de subpastas eu faço (por exemplo para arquivos cs)
findstr /s /i /n "Thepattern" *.cs
ultimamente, descobri que você pode usar o grep no MINGW64 que é instalado ao usar o Git. Então eu tentei
grep --color -n -r "Thepattern" *.cs
Mas mesmo eu colocando -r
a busca não inclui os subdiretórios.
O que estou fazendo de errado com o grep? e como deveria ser?
EDIT: Anaksunaman me forneceu a resposta correta:
grep --color -n -r --include=*.cs "Thepattern"
e várias outras opções :) Obrigado!
Responder1
Descobri que você pode usar o grep no MINGW64 que é instalado ao usar o Git.
Presumo que você esteja se referindo ao Git Bash.
O que estou fazendo de errado com o grep? E como deveria ser?
Você deveria tentar isso:
grep --color -n -r --include=*.cs "ThePattern"
--include=
deveria vir depois -r
. Isso limitará os resultados aos arquivos que terminam com ".cs". Você também pode especificar um diretório se desejar, por exemplo:
grep --color -n -r --include=*.cs "ThePattern" ~/some/directory/'with spaces'
Neste caso, ~
refere-se à pasta do seu perfil de usuário no Windows.
Além disso, assumindo que "ThePattern" é uma string literal, pode ser necessário incluir -i
para tornar as coisas insensíveis a maiúsculas e minúsculas, por exemplo:
grep --color -n -i -r --include=*.cs "ThePattern"
Caso contrário, "ThePattern" não é o mesmo que, por exemplo, "Thepattern" e você poderá não obter nenhum resultado.
Observe que você sempre pode usar grep --help
para obter informações sobre opções adicionais.