Buscando texto dentro de arquivos no Linux

Um recurso legal de ter à disposição, principalmente a programadores, é a busca em conteúdo de arquivos. Normalmente temos isto no gerenciador de arquivos, porém se quisermos fazer “na mão”, talvez até gerar uma automação usando ShellScript, uma solução é usar o comando grep.

Sintaxe:

grep -R [string buscada] [diretório base]
* -R define a recursividade da busca, ou seja, a busca irá partir do diretório base e seguir para seus subdiretórios também.
 

Exemplos:

grep -R  "Meu Texto" ./
grep -R  "texto procurado" "/home/A Minha Pasta"

Lapidando:

O resultado da busca será cada ocorrência do texto em cada arquivo encontrado, o que poderá gerar um pouco de repeteco. Podemos melhorar isto com uma abordagem que achei em um fórum, que é o recorte da saída de cada ocorrência, a fim de captar somente o nome do arquivo onde o texto está, e então fazer um agrupamento. Segue o comando:

grep -R  "Meu Texto" /home/blablabla/ | cut -d: -f1 | uniq
* Neste caso, o “cut” será do início do texto até o sinal de “:” (definido por “-d:“) e a primeira parte do texto (definida por -f1) será agrupada por uniq.

 

Post com a dica do “cut”:
http://www.vivaolinux.com.br/dica/Localizar-arquivo-contendo-texto-especificado-no-Linux