Enviado em 18/04/2017 - 15:51h
Fala galera...Enviado em 18/04/2017 - 16:44h
Enviado em 18/04/2017 - 23:24h
Aqui vai uma tentativa:#!/bin/bash i=1 for arquivo in `ls -1 *.{pdf,html}`; do EXT=$(echo $arquivo | awk -F . '{print $2}') DATA=$(date -r $arquivo +"%s") SOMA=$(expr $DATA + 86400) DATAFINAL=$(date -d @$SOMA +"%d%m%y") mv -v "$arquivo" "PD-$DATAFINAL-$i.$EXT" let i=i+1 done
Enviado em 29/04/2017 - 21:39h
As dicas de vcs me ajudaram muito, obrigadoEnviado em 12/05/2017 - 13:20h
Fala galera após muitos dias finalmente consegui deixar o código funcional e a contento...########## DECLARAÇÃO DE VARIÁVEIS GLOBAIS E CONSTANTES ############# caminho=/opt/lampp/htdocs/Casop/interno/php/Plano-dia/arquivos-processamento/arq_teste raiz=/opt/lampp/htdocs/Casop/interno/php/Plano-dia/arquivos-processamento ########## DECLARAÇÃO DE FUNÇÕES ############# renomeia(){ #Elimina arquivos desnecesários #Renomeia nomes com espaço que geram erro em conversão em lote #Renomeia arquivos para o padrão "PD"DDMMAA.extensão cd $caminho find . ! \( -iname "*.pdf" -o -iname "*.html" -o -iname "*.htm" \) -exec rm -f {} \; 2> /dev/null mkdir $raiz/temp cd $raiz/temp mkdir renomear cd $caminho find . ! -iname 'PD[0-9][0-9][0-9][0-9][0-9][0-9].*' -exec mv {} $raiz/temp/renomear/ \; 2> /dev/nul cd $raiz/temp/renomear ls -w1 > $raiz/temp/nomes_fora_padrao.txt cat $raiz/temp/nomes_fora_padrao.txt | while read Linha; do mv "$Linha" "$(echo $Linha | tr '\ ' '_')" 2> /dev/nul done ls -w1 > $raiz/temp/nomes_corigidos.txt cat $raiz/temp/nomes_corigidos.txt | while read Linha; do dia=$(date -r $Linha +%d) mes=$(date -r $Linha +%m) ano=$(date -r $Linha +%y) datax=$(date --date="$ano-$mes-$dia 1day" +%d%m%y) extensao=$(echo "$Linha" | cut -d"." -f2) mv "$Linha" "$(echo "PD"$datax"."$extensao)" 2> /dev/nul done find . \( -iname "*.pdf" -o -iname "*.html" -o -iname "*.htm" \) -exec mv {} $caminho/ \; 2> /dev/nul } convert_pdf(){ #Chama a subrotina sub_convert_pdf e aplica o "touch" para a data de modificação original dos arquivos. #Recupera a data de modificação original dos arquivos pdf recém convertidos e junta todos numa só pasta. touch $raiz/temp/sub_convert_pdf.sh chmod 775 $raiz/temp/sub_convert_pdf.sh > $raiz/temp/sub_convert_pdf.sh cd $caminho/ mkdir $raiz/temp/nopdf find . -iname '*.htm' -exec mv {} $raiz/temp/nopdf/ \; 2> /dev/nul && find . -iname '*.html' -exec mv {} $raiz/temp/nopdf/ \; 2> /dev/nul && ls -w1 $raiz/temp/nopdf/ > $raiz/temp/nopdf.txt cd $raiz/temp/nopdf/ while read Linha; do arquivo=$(echo "$Linha" | cut -d "." -f1) ano=$(echo "$Linha" | cut -c 7-8) mes=$(echo "$Linha" | cut -c 5-6) dia=$(echo "$Linha" | cut -c 3-4) horario=$(date -r $Linha +%T) hora=$(echo $horario | cut -c 1-2) min=$(echo $horario | cut -c 4-5) seg=$(echo $horario | cut -c 7-8) datax=$(date --date="$ano-$mes-$dia -1day" +%Y%m%d) echo "/opt/wkhtmltox/bin/wkhtmltopdf -q $raiz/temp/nopdf/$Linha $raiz/temp/nopdf/$(echo $arquivo".pdf") 2> /dev/nul" >> $raiz/temp/sub_convert_pdf.sh echo "touch -t $datax$(echo $hora$min"."$seg) $raiz/temp/nopdf/$(echo $arquivo".pdf") 2> /dev/nul " >> $raiz/temp/sub_convert_pdf.sh done < $raiz/temp/nopdf.txt $raiz/temp/sub_convert_pdf.sh wait find . -iname '*.pdf' -exec mv {} $caminho/ \; 2> /dev/null } organiza(){ #Cria pastas separadas por ano e mês cd $raiz/temp touch mover.sh chmod 755 mover.sh ls -w1 $caminho > arquivos.txt cat arquivos.txt | cut -c 7-8 > anox.txt cat anox.txt | sort | uniq > diretorios.txt cd $caminho/ mkdir PD_Anteriores cd $raiz/temp # Move os arquivos pelo ano. while read Linha; do mkdir $caminho/PD_Anteriores/20$Linha 2> /dev/null echo "find $caminho/ -iname '*$Linha'.pdf -exec mv {} $caminho/PD_Anteriores/20$Linha/ \; 2> /dev/null" >> $raiz/temp/mover.sh done < diretorios.txt ./mover.sh find . -type d -empty -exec rm -rf {} \; 2> /dev/null } box(){ #Roda o script em modo gráfico. for i in $(seq 1 100); do sleep 7.5 echo $i done | whiptail --title 'Plano do Dia - Anos Anteriores' --gauge 'Iniciado o processo... ( Aguarde por favor )' 6 60 0 whiptail --title 'Plano do Dia - Anos Anteriores' --msgbox 'Finalizado.' 6 60 0 } separa_mes(){ # Move os arquivos pelo mês. while read Linha; do cd $caminho/PD_Anteriores/20$Linha ls -w1 > $raiz/temp/arquivos$Linha.txt mkdir 01_JAN 2> /dev/null mkdir 02_FEV 2> /dev/null mkdir 03_MAR 2> /dev/null mkdir 04_ABR 2> /dev/null mkdir 05_MAI 2> /dev/null mkdir 06_JUN 2> /dev/null mkdir 07_JUL 2> /dev/null mkdir 08_AGO 2> /dev/null mkdir 09_SET 2> /dev/null mkdir 10_OUT 2> /dev/null mkdir 11_NOV 2> /dev/null mkdir 12_DEZ 2> /dev/null while read Linha; do mes=$(echo "$Linha" | cut -c 5-6) case $mes in 01) find . -iname 'PD[0-9][0-9]01*' -exec mv {} 01_JAN/ \; 2> /dev/nul;; 02) find . -iname 'PD[0-9][0-9]02*' -exec mv {} 02_FEV/ \; 2> /dev/nul;; 03) find . -iname 'PD[0-9][0-9]03*' -exec mv {} 03_MAR/ \; 2> /dev/nul;; 04) find . -iname 'PD[0-9][0-9]04*' -exec mv {} 04_ABR/ \; 2> /dev/null;; 05) find . -iname 'PD[0-9][0-9]05*' -exec mv {} 05_MAI/ \; 2> /dev/null;; 06) find . -iname 'PD[0-9][0-9]06*' -exec mv {} 06_JUN/ \; 2> /dev/null;; 07) find . -iname 'PD[0-9][0-9]07*' -exec mv {} 07_JUL/ \; 2> /dev/null;; 08) find . -iname 'PD[0-9][0-9]08*' -exec mv {} 08_AGO/ \; 2> /dev/null;; 09) find . -iname 'PD[0-9][0-9]09*' -exec mv {} 09_SET/ \; 2> /dev/null;; 10) find . -iname 'PD[0-9][0-9]10*' -exec mv {} 10_OUT/ \; 2> /dev/null;; 11) find . -iname 'PD[0-9][0-9]11*' -exec mv {} 11_NOV/ \; 2> /dev/null;; 12) find . -iname 'PD[0-9][0-9]12*' -exec mv {} 12_DEZ/ \; 2> /dev/null;; esac done < $raiz/temp/arquivos$Linha.txt done < $raiz/temp/diretorios.txt } ########## INÍCIO ############# box & renomeia convert_pdf organiza separa_mes rm -rf $raiz/temp/ #FIM
Descritores de Arquivos e Swappiness
tux-gpt - Assistente de IA para o Terminal
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
O Que Fazer Após Instalar Ubuntu 25.04
Copiar Layout do Teclado para aplicar em outra Distribuição (10)
Autenticação necessária. um aplicativo quer acesso ao chaveiro (2)
Graduação e certificação Eng. de redes e Eng. Linux[DUVIDA] (0)