Linuxeiros de plantão: aqui vai 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.

Originalmente postado em: http://stoa.usp.br/fgil/weblog/33544.html

Exibições: 362

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Marcelo Rodrigues em 9 maio 2012 às 19:14

Isso me foi muuuuuuito útil hoje, porque o Magento não é brinquedo. Hehehe...

Valeu Fernando!

Abraço!!

Comentário de Gustavo Luiz Ferreira Walbon em 17 dezembro 2011 às 16:36

Faz um alias nisso pra não ficar toda hora escrevendo:

$ alias procura="grep -r --color -n -i -C 2 --exclude-dir=.svn"


Agora é só usar um comando simples pra procurar.

$ procura "seu texto"

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço