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 .