Pesquisa recursiva
Publicado por Marco Carvalho de Oliveira 24/10/2008
[ Hits: 11.778 ]
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
Remover arquivos com determinados caracteres no nome
DOOM mais fácil que atacar imp pelas costas
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Instalando Discord no Debian 12
Instalando e usando o Dconf Editor, o "regedit" para Linux