Pesquisando arquivos pelo seu conteúdo em modo texto

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

[ Hits: 72.797 ]

 


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

Firebird - Backup de banco de dados

Criando log de erro para seus programas Kylix

Programação Kylix: Informações do menu na barra de status

Leitura recomendada

Suspendendo o root

apt-get update/upgrade - Atualização automática

Controlar multimídia via linha de comando (Spotify, Netflix, YouTube etc)

Fingindo que está ocupado no trabalho enquanto toma um café ouvindo podcast

Escutando música pelo terminal do Linux

  

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