você está aqui: Home  → Arquivo de Mensagens

Script para GREP Recursivo

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 26 de Junho de 1998

Muitas vezes necessitamos achar um arquivo que contenha uma determinada string e não sabemos exatamente por onde começar. Este problema pode ser resolvido de maneira simples pelo comando rgrep (Recursive Grep) que na verdade nada mais é do que um shell script combinando os comandos find e grep.

Ao comando grep é fornecido como argumento uma lista de arquivos gerada a partir do diretório corrente. Fornece-se uma lista porque o comando grep quando atua a partir de um arquivo apenas, não precede os resultados com o nome do arquivo, ou seja, o resultado gerado não serve para nada.

O script é bastante simples, e é claro que pode ser melhorado. Eu não inclui por exemplo, a opção de se especificar o diretório, porque em 99.99% das vezes nós (ao menos eu) usamos o comando find a partir do diretório corrente. Também não inclui a possibilidade de fornecimento de flag ao comando grep. Tudo isto entretanto é fácil de se implementar. Apenas não achei necessário. A beleza do script é justamente esta; é simples e funciona :)

  #! /bin/sh
  #
  #       RGREP
  #       Autor: Queiroz
  #       Data : 26/11/98
  #
  #       Este shell script realiza um grep recursivo, a partir do diretório
  #       corrente, sobre a string fornecida como argumento.
  #
  string=$1
  
  if [ $# -lt 1 ]; then
          echo 1>&2 Sintaxe: $0 string_a_pesquisar
          exit 1
  
  else
         find . -type f -print > /tmp/rgreplist.$$ # Criacao da lista de arquivos
         grep $string ""cat /tmp/rgreplist.$$"" >> /tmp/rgrep.$$
  fi
  
  # Visualização do arquivo com os resultados
  
  view /tmp/rgrep.$$
  
  # Remocao dos arquivos de trabalho
  
  rm /tmp/*.$$


 

 

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script