Pesquisando arquivos pelo seu conteúdo em modo texto

Publicado por Anderson de Assis de Souza em 04/09/2006

[ Hits: 72.424 ]

 


Pesquisando arquivos pelo seu conteúdo em modo texto



Esta é uma dica bem simples, mas como eu tive um certo trabalho para descobrir, resolvi compartilhar com a comunidade.

Às vezes é necessário pesquisar um arquivo pelo conteúdo e talvez o computador que você esteja usando só tenha o Linux em modo texto, normalmente servidores.

Nesse caso é necessário combinar alguns comandos do Linux, utilizando seu incrível potencial. O resultado é este:

# find / | xargs grep -s -a -i palavra_chave | cut -d : -f 1 | uniq

Desta forma serão mostrados todos os arquivos do computador que contenham esta palavra_chave. Note que você pode mudar o diretório de pesquisa no início do comando "find /". Você pode modificar por exemplo para "find /home/seu_usuário".

No entanto existe um problema neste comando, se você tiver algum arquivo que contenha no meio do seu nome o caracter ":" , só irá mostrar a primeira parte do arquivo.

Neste caso, que pode dar problemas, resuma o comando um pouco, mas a tela será preenchida com informações em excesso. Veja o comando abaixo:

# find / | xargs grep -s -a -i palavra_chave | uniq

Se você quiser saber quantas vezes a palavra chave aparece, retire o comando "|uniq", será mostrado cada arquivo o mesmo número de vezes que encontrar a palavra_chave no arquivo.

Esta dica é simples, mas também é bastante útil.

Outras dicas deste autor

Problemas ao compilar o MPlayer no Slackware Linux 12.1

Corrigindo o erro: C compiler cannot create executables

Criando log de erro para seus programas Kylix

Firebird - Backup de banco de dados

Problema: programa não roda fora do Kylix

Leitura recomendada

Medindo o tempo de resposta de cada step de API/SITE no terminal

Comando CHMOD (Change Mode) no Modo Octal

Facilitando as permissões no Linux com uso de ACLs

Transformando rapidamente variáveis em arrays

Programa travou e não responde? Use a função xkill

  

Comentários
[1] Comentário enviado por pedemesa em 04/09/2006 - 16:03h

Muito boa dica!

[2] Comentário enviado por buenopeixe em 17/08/2009 - 14:06h

E aí fera... como disse... dica simples porém bastante útil!

Excelente dica!

Grande abraço!

[3] Comentário enviado por joaomichelazzo em 21/08/2009 - 11:10h

O que pode ser feito para otimizar o resultado da busca é criar um Shell para executar a busca.

Criei um arquivo "busca" por exemplo

no final da string acrescente "> x" onde "x" é o nome do arquivo com o resultado da busca

ind / | xargs grep -s -a -i palavra_chave | cut -d : -f 1 | uniq > x

no prompt execute o shell

# sh busca
ou
# ./busca

O resultado da busca será salvo no arquivo "x" que você adicionou ao final da string

[4] Comentário enviado por yourganow_007 em 05/11/2009 - 13:13h

ok, boa dica! mais como fazer isso em modo gráfico?

[5] Comentário enviado por ers.darksider em 14/05/2010 - 21:12h

excelente dica...

Gostaria de saber se funciona (ou como funcionaria) para buscar uma expressão dentro de um arquivo .doc.

É possível?

Valeu!

[6] Comentário enviado por Denilson-Pereira em 18/02/2017 - 19:00h

Ficou muito legal, eu só adicionaria o 2>/dev/null para limpar as mensagens de erro da tela.

Ficaria assim no comando 1:

# find / 2>/dev/null | xargs grep -s -a -i palavra_chave | cut -d : -f 1 | uniq

E assim no comando 2:

# find / 2>/dev/null | xargs grep -s -a -i palavra_chave | uniq



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts