Linux – Localizar arquivo contendo texto especificado

Publicado: outubro 24, 2009 em Linux
Tags:,

Introdução

Certa vez, após instalar o GLPI (sistema de helpdesk), houve a necessidade de customiza-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:

[root@labs ~]# grep -R manaus /home/smith/ 2>/dev/null | cut -d: -f1 | 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: -f1 – 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 primeiro campo (-f1), 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

comentários
  1. Maicon Novaes disse:

    Pode ser mais fácil utilizar o comando:
    # fgrep -ril

    Curtir

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s