Localizar arquivo contendo texto especificado no Linux

Publicado por Andrey Smith em 01/12/2009

[ Hits: 46.133 ]

 


Localizar arquivo contendo texto especificado no Linux



Certa vez, após instalar o GLPI (sistema de helpdesk), houve a necessidade de customizá-lo para ficar de acordo com as necessidades da empresa. O grande problema era saber em qual arquivo encontrar o conteúdo que deveria ser alterado.

Segue abaixo um exemplo de como efetuar a busca:

grep -R manaus /home/smith/ 2>/dev/null | cut -d: -f2 | uniq

Vamos dissecar o comando:
  • grep -R manaus /home/smith/ - procura recursivamente pela palavra "manaus" em todos arquivos a partir do diretório /home/smith;
  • 2>/dev/null - direciona as linhas de erro para /dev/null;
  • | (pipe) - redireciona a saída do comando anterior (grep -R manaus /home/smith/ 2>/dev/null), para a entrada do próximo comando;
  • cut -d: -f2 - o grep gera um arquivo no seguinte formato:

    /path/arquivo:conteúdo da linha

    Como queremos saber apenas qual arquivo contém a palavra "manaus", utilizaremos o comando cut para tratar a saída. O cut lê a saída do comando anterior e seleciona apenas o segundo campo (-f2), separado pelo delimitar (-d) "dois pontos" (":"), ignorando tudo que estiver depois do delimitador.
  • uniq - caso haja mais de uma ocorrência da palavra "manaus" em um mesmo arquivo, será exibida uma linha para cada ocorrência. O uniq remove as linhas duplicadas.

:wq!
Andrey Smith

Outras dicas deste autor

CentOS 5.4 - Criando um repositório local em 10 passos

Instalando Encore ENL832-TX-ICNT no Debian

Configurando hosts favoritos no SSH

CentOS 5.4 - Adicionando o repositório RPMforge

Leitura recomendada

Usando o Bootsplash ao contrário

Debian - Mídias Live e NetInstall com os drivers extras

Evite discussão desnecessária no VOL

Mais uma do NFS

dstat - Obtendo estatísticas do seu sistema

  

Comentários
[1] Comentário enviado por ulisses_c em 04/05/2011 - 12:54h

Como faria para exibir a palavra dentro do arquivo como um faz Ctrol + F em editor de texto por exemplo ? seria com esse comando ou teria outro metodo mais facil.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts