[shellscript] Renomeando vários PDF's de acordo com texto presente no arquivo
Caso real: Vários arquivos em PDF que precisavam ser separados conforme o mês que foram quitados (essa informação consta no corpo do documento) e pode ser referenciada por duas linhas que contém o seguinte formato:
Quitado
dd/mm/aaaa
e com um sequêncial numerico único com a linha no formato:
3-EST.000nn 00n
formato do nome após execução do script
MMM-000nn00n.pdf
Exemplo:
JAN-00022001.pdf
Dependencias: poppler, grep, sed
#!/bin/bash
# hudsonBomfim ver 300623
MES=("NULL" "JAN" "FEV" "MAR" "ABR" "MAI" "JUN" "JUL" "AGO" "SET" "OUT" "NOV" "DEZ")
for pdf in *.pdf
do
pdftotext "${pdf}"
nomeArquivo=`basename -s .pdf "${pdf}"`
mesNumero=`grep -A2 'Quitado' "${nomeArquivo}.txt" | grep -o '/[0-1][0-9]/' | tr -d '/0'`
novoNome=`sed '10!d;s/3-EST\.//;s/ //' "${nomeArquivo}.txt"`
mv "${pdf}" "${MES[mesNumero]}-${novoNome}.pdf"
done
rm *.txt
Vale dizer que não funciona para PDF's de documentos feitos a partir de imagens