Você pode usar a ferramenta grep
para pesquisar recursivamente a pasta atual com o parâmetro -r
, como:
grep -r "pattern" .
Nota: -r
- Pesquise recursivamente subdiretórios.
Para pesquisar em arquivos específicos, você pode usar uma sintaxe globbing como:
grep "class foo" **/*.c
Observação: usando a opção de globbing ( **
), ele verifica todos os arquivos recursivamente com extensão ou padrão específico. Para ativar esta sintaxe, execute: shopt -s globstar
. Você também pode usar **/*.*
para todos os arquivos (excluindo ocultos e sem extensão) ou qualquer outro padrão.
Se você tiver o erro de que seu argumento é muito longo, considere restringir sua pesquisa ou use a sintaxe find
como:
find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
Como alternativa, use ripgrep
.
Se você estiver trabalhando em projetos maiores ou em arquivos grandes, use ripgrep
, como:
rg "pattern" .
Faça check-out dos documentos, etapas de instalação ou código-fonte na página do projeto do GitHub .
É muito mais rápido que qualquer outra ferramenta como o GNU / BSD grep
, ucg
, ag
, sift
, ack
, pt
ou similar, já que é construído em cima de regex de Rust engine que usa autômatos finitos, SIMD e otimizações literais agressivas para tornar a pesquisa muito rápida.
Ele suporta padrões de ignorar especificados em .gitignore
arquivos, portanto, um único caminho de arquivo pode ser comparado a vários padrões glob simultaneamente.
Você pode usar os parâmetros comuns, como:
-
-i
- pesquisa insensível.
-
-I
- Ignore os arquivos binários.
-
-w
- Pesquise as palavras inteiras (ao contrário da correspondência parcial de palavras).
-
-n
- Mostra a linha do seu jogo.
-
-C
/ --context
(por exemplo, -C5
) - Aumenta o contexto, então você vê o código ao redor.
-
--color=auto
- Marque o texto correspondente.
-
-H
- Exibe o nome do arquivo onde o texto é encontrado.
-
-c
- Exibe a contagem de linhas correspondentes. Pode ser combinado com -H
.