Pesquisa recursiva
Publicado por Marco Carvalho de Oliveira 24/10/2008
[ Hits: 11.915 ]
Homepage: http://demoncyber.wordpress.com/
Certo dia um professor me procurou perguntado como ele poderia fazer uma busca recursiva em vários arquivos de pdf em várias pastas para saber se existia uma determinada expressão neles, utilizando shellscript. E aí está a resposta.
Processo adotado:
- Converter arquivos pdf em texto
- Fazer a busca por expressão regular no arquivo com a expressão requisitada
- Escrever em um outro arquivo os documentos que contém a expressão procurada
# procura-recursiva - Simples script para a busca em vários arquivos do tipo pdf de forma recursiva # Marco Carvalho de Oliveira - demoncyber@gmail.com ou marco@colmeia.udesc.br # Colméia - Grupo de Pesquisa em Software Livre # #!/bin/bash IFS=$’\n’ #seta o separador de comandos para quebra de linha isto é para resolver caso tenhamos a indesejável utilização de espaços nos nomes dos arquivos MYTMP=/tmp/procura-recursiva/ # pasta utilizada pelo programa rm -rf $MYTMP mkdir $MYTMP for files_pdf in `find -type f | grep “\.pdf$” | sed “s/\.//”` do LOC_FILE=`pwd`$files_pdf # diretorio onde se encontra o arquivo seguido do seu nome NAME_FILE=`basename $files_pdf` # nome dp arquivo pdf analizado FIND_FILE=$MYTMP$NAME_FILE.txt # Arquivo temporário de pdf em forma de texto para ser utilizado na busca rescursiva pdftotext $LOC_FILE $FIND_FILE # Converte o arquivo pdf para um arquivo de texto para executar a busca grep $1 $FIND_FILE >> /dev/null # Procura no arquivo de texto e joga o resultado para o buraco negro if [ $? = 0 ] then #verifica se a busca foi bem sucedida caso sim imprime que foi econtrada a palavra chave no arquivo echo “Expressao encontrada no arquivo $NAME_FILE”; fi done # modo de usar, estando no diretorio que vc quer fazer a busca # bash procura-recursiva expressao
Escolhendo os diretorios e fazendo backup com Logs
Instalar flash Player no google chromium ubuntu 14.04
Colorindo código fonte em C com o SED
Determinar o tempo de compilação de um programa
Converter arquivo bibtex para texto formatado e vice-versa
Atenção a quem posta conteúdo de dicas, scripts e tal (6)
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
O mínimo que você precisa saber sobre o terminal (parte 2)
O mínimo que você precisa saber sobre o terminal (parte 1)
Como iniciar uma máquina virtual do VirtualBox automaticamente no boot do LUbuntu 18 LTS
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como deixar as abas do Firefox mais fininhas
Mudar o gerenciador de login (GDM para SDDM)
"Tentando" fazer com que programas rodem no Wayland e no X11
Formatar NVM Express 1.3 de forma segura por completo (3)
Problema ao usar monitor externo via USB-C/Display... no Ubuntu 24 (1)
Porblema com MergeList [RESOLVIDO] (10)
Melhor hospedagem em nuvem para projetos Laravel com baixo custo? [RES... (7)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta