Por padrão, a maioria das ferramentas de pesquisa examina os nomes dos arquivos, não o conteúdo dos arquivos. No entanto, o programa de pesquisa GNU mais famoso, grep, procurará dentro dos arquivos com os sinalizadores corretos. Aqui, mostramos como você pode encontrar palavras específicas em um arquivo no Linux.
Usando grep para encontrar uma palavra específica em um arquivo
Por padrão, o grep pesquisa o conteúdo dos arquivos, bem como seus nomes de arquivo. Ele está incluído na maioria dos sistemas Linux e geralmente é idêntico nas distros. Os programadores que examinam o conteúdo do arquivo de seus projetos podem preferir executar um comando diferente, como ack.
Dependendo de como o arquivo é codificado, grep pode nem sempre ser capaz de olhar para dentro. Mas para a maioria dos formatos baseados em texto, grep pode digitalizar o texto do arquivo para o padrão especificado.
grep -rw '/path/to/search/' -e 'pattern'
- o
-rsinalizador define o grep para o modo recursivo, navegando por todos os diretórios contidos no diretório especificado. - o
-wflag procura correspondências de palavras inteiras. Isso significa que “vermelho” corresponderá apenas à palavra “vermelho” em vez de qualquer sequência de letras que a contenha, como “vermelhoundant” ou “tivermelho.” Ele faz isso procurando apenas por “vermelho” cercado pelo que é conhecido como caracteres constituintes não verbais (ou seja, qualquer coisa que não seja uma letra, número ou sublinhado). - o
-esinalizador precede o padrão a ser pesquisado. Ele suporta expressões regulares por padrão.
Para acelerar o grep, você pode usar o --exclude e --include sinalizadores para limitar a pesquisa a determinados tipos de arquivos. Por exemplo, --exclude="*.csv" não pesquisará em nenhum arquivo com a extensão .csv. --include="*.txt", por outro lado, pesquisará apenas em arquivos com a extensão .txt. O sinalizador pode ser adicionado imediatamente após o comando grep, conforme mostrado abaixo:
grep --exclude='*.csv' -Rw '/path/to/search' -e 'pattern'
Você também pode excluir diretórios especificados seguindo o formato abaixo:
grep --exclude-dir='{dir1,dir2,*_old}' -Rw '/path/to/search' -e 'pattern'
Este comando não pesquisará em nenhum diretório no diretório de trabalho atual denominado dir1, dir2 ou correspondente ao padrão *_old, eliminando-os do processo de pesquisa. Ele executará a pesquisa de correspondência de palavra completa recursiva especificada em todos os outros arquivos no diretório de trabalho atual.
Sinalizadores interessantes que você pode usar com o grep
Agora que você está familiarizado com o grep e como ele funciona, aqui estão alguns sinalizadores úteis que você pode anexar ao seu comando:
-i– Faz grep fazer uma pesquisa sem distinção entre maiúsculas e minúsculas. Por exemplo, pesquisar por “Kraken” retornará um resultado quando o grep encontrar correspondências para “kraken” ou “kRaken”.-n– Mostrar números de linha ao lado de correspondências. Isso é especialmente útil para programadores ou pessoas que procuram grandes arquivos de configuração.-R– Como com-ro grep fará uma pesquisa recursiva em todas as subpastas, mas esse sinalizador específico seguirá links simbólicos (atalhos).-s– Suprime mensagens de erro. Se você estiver recebendo muitos erros perturbadores sobre arquivos que não existem, não podem ser lidos ou têm permissões inadequadas, passe isso para que o grep possa continuar mostrando as correspondências encontradas.
Usando find para encontrar uma palavra específica em um arquivo
Enquanto o find a sintaxe do comando é mais complicada que grep, alguns preferem.
find . -name "*.php" -exec grep "pattern" {} ;
Este comando usará find’s -exec sinalizador para passar os arquivos encontrados para grep para pesquisa. Com um arranjo inteligente de sintaxe, você pode usar findbusca mais rápida do sistema de arquivos para localizar os tipos de arquivos específicos nos quais você deseja pesquisar e, em seguida, canalizá-los para grep para pesquisar dentro dos arquivos.

Observe que find olha apenas para nomes de arquivos, não para conteúdos. É por isso que o grep é necessário para pesquisar o texto e o conteúdo do arquivo. Os sinalizadores grep normais devem estar totalmente operacionais dentro do -exec bandeira.
Usando ACK para encontrar uma palavra específica em um arquivo
O comando ack é provavelmente a ferramenta de pesquisa mais rápida, mas não é tão popular quanto grep. O comando abaixo irá pesquisar dentro do diretório atual.
ack 'pattern'
Se você deseja pesquisar em um arquivo ou diretório específico, pode anexar esse arquivo ou nome de caminho totalmente qualificado à sua pesquisa.
ack 'pattern' /path/to/file.txt
Quer uma GUI? Usar peixe-gato
Se você é alérgico a terminais, todas as distros populares do Linux oferecem o Catfish, um aplicativo GUI versátil que permite pesquisar arquivos e seus conteúdos para uma string específica. Não é tão avançado quanto os comandos discutidos aqui, mas fornece um serviço valioso para pessoas que preferem uma interface gráfica.

Para pesquisar o conteúdo do arquivo por uma palavra específica, clique no menu no canto superior direito do Catfish e clique em “Pesquisar conteúdo do arquivo”.

Depois de configurá-lo, digite o que deseja pesquisar na barra superior e pressione Digitar. É isso!
perguntas frequentes
Como paro uma pesquisa do grep antes de terminar?
Para interromper qualquer processo em andamento em seu terminal, basta pressionar Ctrl + C em seu teclado. Isso envia um sinal para encerrar o processo em execução. É também por isso que você não pode usar atalhos normais de copiar/colar de dentro de um emulador de terminal.
Existem gerenciadores de arquivos que pesquisam o conteúdo do arquivo?
Se você usar o ambiente de área de trabalho KDE Plasma, seu gerenciador de arquivos padrão (Dolphin) já possui esse recurso. Quando você clica no botão de pesquisa para procurar arquivos, há uma opção para escolher entre os nomes e o conteúdo do arquivo abaixo da barra de pesquisa.
Basta clicar em “Conteúdo” se quiser pesquisar palavras dentro dos arquivos. Não será tão avançado quanto usar grep, mas faz o trabalho.
Existem outros usos para o grep?
Grep não é apenas para pesquisar seu sistema de arquivos! Curiosamente, você pode canalizá-lo através de quase qualquer comando para pesquisar sua saída, em vez de ter que encontrar algo manualmente.
Grep pode ser usado para filtrar a saída do comando para mostrar coisas que são mais relevantes para você. Experimente o suficiente e você acabará por dominar a arte de diagnosticar e conhecer o seu computador!
Apoie o nosso trabalho ❤️
Se você gostou deste artigo, considere deixar uma gorjeta para nos ajudar a continuar publicando conteúdo de qualidade.



















