grep -r (ou -R) não procura dentro de subpastas

0

Já faz algum tempo desde que eu não uso linux, usando windows. No windows sempre que eu quero procurar por uma string em arquivos e arquivos dentro de subpastas que eu faço (por exemplo, para arquivos cs)

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

Recentemente, 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 que eu coloque -r , a pesquisa não inclui os subdiretórios.

O que estou fazendo de errado com o grep? e como deveria ser?

EDITAR: Anaksunaman me deu a resposta correta:

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

e várias outras opções :) Obrigado!

    
por KansaiRobot 05.02.2018 / 02:44

1 resposta

0

I found out that you can use grep in MINGW64 that is installed when using Git.

Estou assumindo que você está se referindo ao Git Bash.

What am I doing wrong with grep? And how it should be?

Você deve tentar isto:

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

--include= deve vir após -r . Isso limitará os resultados a arquivos que terminem 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'

Nesse caso, ~ refere-se à sua pasta de perfil de usuário no Windows.

Além disso, supondo que "ThePattern" seja uma string literal, talvez seja 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ê pode não obter nenhum resultado.

Note que você sempre pode usar grep --help para obter informações sobre opções adicionais.

    
por 05.02.2018 / 04:48