Stoa :: Fernando de Oliveira Gil :: Blog :: Find in Files com o Grep (Primeiro Post)

outubro 03, 2008

default user icon

Inaugurando o blog e o uso do Stoa, começo com uma dica de como procurar um texto específico dentro de vários arquivos no Linux. Este tipo de procura é muito útil quando estamos programando e precisamos encontrar um trecho de código ou alguma frase que foi escrita e não se sabe em qual arquivo está. Também podemos usar esta busca para encontrar chamadas de função.

Para fazer isso vamos usar o grep, que é um programa que é muito utilizado para filtrar listas. Normalmente o utilizamos para filtar um ls, por exemplo, para listar todos os arquivs jpeg de uma pasta, basta fazer:

ls | grep jpg

Para buscar um texto específico em vários arquivos de uma pasta, podemos fazer o uso do grep da forma:

grep -r --color -n -i -C 2 --exclude-dir=.svn "texto procurado" .

Explicando o comando:

  • grep é o programa
  • -r faz busca recursiva
  • --color pinta de vermelho o texto procurado
  • -n mostra o número da linha
  • -i ignora a diferença maiúsculas / minísculas
  • -C 2 faz com que ele mostre 2 linhas antes e 2 linhas depois, para você poder ver o contexto
  • --exclude-dir=.svn exluí todos os diretórios .svn, pra quem usa o subversion é uma boa opção
  • "texto procurado" é o texto que se deseja encontrar
  • . (ponto) representa o diretório atual

O comando Grep tem ainda a funcionalidade de utilizar expressões regulares na busca, que aliás, foi a funcionalidade original do programa.

Palavras-chave: comandos, dicas, linux

Postado por Fernando de Oliveira Gil | 3 usuários votaram. 3 votos

Comentários

  1. Nathalia Sautchuk Patricio escreveu:

    Essa dica é muito boa! Esse comando pode sempre ajudar!

    Nathalia Sautchuk PatricioNathalia Sautchuk Patricio ‒ sexta, 03 outubro 2008, 11:43 -03 # Link |

Você deve entrar no sistema para escrever um comentário.

Termo de Responsabilidade

Todo o conteúdo desta página é de inteira responsabilidade do usuário. O Stoa, assim como a Universidade de São Paulo, não necessariamente corroboram as opiniões aqui contidas.