Você pode usar a grep
ferramenta para pesquisar recursivamente a pasta atual com o -r
parâmetro, como:
grep -r "pattern" .
Nota: -r
- Pesquise recursivamente subdiretórios.
Para pesquisar em arquivos específicos, você pode usar uma sintaxe invejável , como:
grep "class foo" **/*.c
Nota: Ao usar a opção globbing ( **
), ele verifica todos os arquivos recursivamente com extensão ou padrão específico. Para habilitar essa sintaxe, execute: shopt -s globstar
. Você também pode usar **/*.*
para todos os arquivos (excluindo oculto 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 find
sintaxe, 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, deve usar ripgrep
, como:
rg "pattern" .
Confira os documentos, as etapas de instalação ou o código-fonte na página do projeto GitHub .
É muito mais rápido do que qualquer outra ferramenta como o GNU / BSD grep
, ucg
, ag
, sift
, ack
, pt
ou similar, uma vez que é construído em cima do motor de regex de Rust que usa autômatos finitos, SIMD e otimizações literais agressivos para tornar a busca muito rápido.
Ele suporta padrões de ignorar especificados em .gitignore
arquivos, para que um único caminho de arquivo possa ser comparado com 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
- Mostre a linha do seu jogo.
-C
/ --context
(por exemplo -C5
) - Aumenta o contexto, para que você veja o código ao redor.
--color=auto
- Marque o texto correspondente.
-H
- Exibe o nome do arquivo onde o texto é encontrado.
-c
- Exibe contagem de linhas correspondentes. Pode ser combinado com -H
.