Localizar arquivo contendo texto especificado no Linux

Publicado por Andrey Smith em 01/12/2009

[ Hits: 46.298 ]

 


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 - Adicionando o repositório RPMforge

Instalando Encore ENL832-TX-ICNT no Debian

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

Configurando hosts favoritos no SSH

Leitura recomendada

Instalando fontes no Debian

Esconder barra de título do Firefox no GNOME Shell

Redirecionamento de pacotes com o redir

Estilos de Bash Prompts

Saudosismo - Imagens ISO do Conectiva Linux

  

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