Find - Pesquisar trechos (strings) dentro de arquivos

Publicado por Darlan da Silva Encarnação em 13/07/2012

[ Hits: 67.351 ]

 


Find - Pesquisar trechos (strings) dentro de arquivos



Olá a todos,

Sempre tive a necessidade de encontrar arquivos em meu sistema, porém, a única associação que tinha desse arquivo era um parâmetro, ou trecho, que estava dentro do arquivo e com o comando find, apenas encontrava se soubesse o nome do arquivo.

Bom, esse problema foi resolvido e gostaria de compartilhar com vocês:

find ./* -type f -exec grep -l STRING {} \;

Altere "STRING" com o trecho que gostaria de procurar.

É isso aí. (:

Outras dicas deste autor

Definindo a inicialização em modo gráfico ou texto no Red Hat

MySQL - Erro 1045: Access denied for user: 'root@localhost'

Transformando seu Ubuntu em BackTrack!

Quebrando senhas com John the Ripper!

Algo mudou no seu sistema? O AIDE te fala!

Leitura recomendada

Pesquisando arquivos pelo seu conteúdo em modo texto

Mais opções do comando cat

lshw - Gerando relatório HTML de seu hardware

PV + PIPE + DD = Barra de Progresso + Gravação de Imagem + Clonar Disco

Desconectar do Samba sem efetuar logoff na máquina

  

Comentários
[1] Comentário enviado por eldermarco em 13/07/2012 - 10:39h

Você também pode utilizar a opção -R, -r ou ainda --recursive do comando grep. Isso faz com que ele entre em cada diretório e procure pelos arquivos que contenham STRING lá também:

$ grep -lr STRING *

[2] Comentário enviado por darlan.ti em 13/07/2012 - 12:14h

Muito bom, mais simples para ser lebrado posteriormente. Vlw a dica (:

[3] Comentário enviado por cesarazevedo em 12/01/2017 - 23:35h

Montei o script abaixo para buscar palavras-chaves(kw) em nomes de arquivos, diretórios e dentro de arquivos a partir de um diretório(dir) e seus subdiretórios, lista todos exceto arquivos ocultos.

Exemplo 1
Buscar a palavra "cesar" em nomes de arquivos, diretório e dentro de arquivos, a partir do diretório "/home":
dir="/home"; kw="cesar"; find $dir -name $kw*; grep -iR $kw $dir | grep -v "\/\./*";

Exemplo 2
Buscar a palavra "cesar" em nomes de arquivos, diretório e dentro de arquivos, a partir do diretório atual
dir=""; kw="cesar"; find $dir -name $kw*; grep -iR $kw $dir | grep -v "\/\./*";

Testado no Ubuntu Server



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts