Pesquisa recursiva
Publicado por Marco Carvalho de Oliveira 24/10/2008
[ Hits: 12.447 ]
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
Pegando IP sem saber qual interface está sendo usada
Jogo da Velha com IA - Usuário vs Máquina
A combinação de WMs com compositores feitos por fora
Audacious, VLC e QMMP - que saudades do XMMS
SUNO OpenSource: Crie um servidor de gerador de música com IA
Instalação Completa e Configuração Básica do Void Linux
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Migração do KDE Plasma para Cinnamon no Gentoo (com systemd) + Tema Colloid
Como desativar a economia de energia no Gentoo (Systemd, Wi-Fi, USB e SSH)
Tenha opção de emblemas embutido no pcmanfm
Vulkan Gaming no Slackware [RESOLVIDO] (7)
Linux mint cinnamon travando. (0)









