shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] libreoffice odp para jpg ( solução-final)


From: Jorge Barros de Abreu
Subject: Re: [shell-script] libreoffice odp para jpg ( solução-final)
Date: Tue, 21 Feb 2012 13:22:09 -0200
User-agent: KMail/1.13.6 (Linux/2.6.37.6; KDE/4.5.5; x86_64; ; )

On Tuesday 21 February 2012 09:24:58 you wrote:
> chei que a melhor dica havia sido o read evitando o cut, mas a que vc
>  gostou foi do printf (veja como usar
>  aqui<http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo009#Envenenando_a_
> escrita> ).


Fui no link e acrescentei mais comentários ao script.
Enquanto fazia esses comentários percebi que o script não funcionava a contendo 
nas verificações e 
prevenções de erro quando o nome de arquivo de entrada era algo do tipo:

../nome.extensão

Ajustei o script e o resultado está abaixo.


> 
>  Só se mata variáveis em desuso nos daemons, pois estes estão rodando
>  perpetuamente. Um script qdo acababa, leva conigo todas as alterações
>  feitas no sistema e todo lixo criado, te devolvendo ao Shell "limpo" que
> vc estava qdo comandou a execução do script.

OK. Obrigado mais uma vez.

Me parece que agora é a versão final:

#!/bin/bash
# $1 nome da apresentacao a ser convertida com a extensão pdf explicitada
#obtida a partir o libreoffice impress
#
# printf "%10d\n" 32
# 
# Imprime 10 caracteres sendo, iniciando-se a contagem a
# partir do número mais à direita, o primeiro número é 2
# e o segundo é o número 3 e as oito posições restantes
# são preenchidos com espaços em branco. Ao terminar
# posiciona o cursor na linha seguinte (o '\n')
# 
# printf "%010d\n" 32
# 
# Imprime 10 caracteres sendo, iniciando-se a contagem a
# partir do número mais à direita, o primeiro número é 2 e
# o segundo é o número 3 e as oito posições restantes são
# preenchidos com zeros. Ao terminar posicione o cursor na
# linha seguinte (o '\n')
#
# extensao do nome
EXTENSAO=`echo $1 | rev | cut -d / -f 1 | rev | cut -d '.' -f 2`
if [[ "$EXTENSAO" != "PDF" ]] && [[ "$EXTENSAO" != "pdf" ]]
    then
    echo -e "\nA extensao tem que ser ou pdf ou PDF"
    exit
fi
unset EXTENSAO
pdftotext $1             #converte de pdf para texto puro
                         #usar esse txt para gravar uma versão
                         #em odt, pdf e doc ajustando o tamanho da
                         #página para A6 e formato paisagem
# extrai a parte da frente do caminho-localização/nome.extensao
# após a última barra antes do ponto que separa a extensao do arquivo.
# parte do nome antes do ponto
NOME=`echo $1 | rev | cut -d / -f 1 | rev | cut -d '.' -f 1`
#trecho que converte a apresentação para jpg criando vários arquivos
#renomeia os arquivos criados possibilitando que eles sejam exibidos
#na ordem correta por qualquer programa de exibição de fotografias
convert "$1" "$NOME".jpg
# cut isola os números e wc -L pega a maior quantidade de caracteres
# nao pega o maior número em valor absoluto.
# os números são criados automaticamente pelo convert
Mai=$(ls $NOME-[0-9]*.jpg | cut -f2 -d- | cut -f1 -d. | wc -L)
for Arq in $(ls $NOME-[0-9]*.jpg)
{
    #IFS='-.' define dois separadores de campo
    #read Nom Num Ext <<< "$Arq" lê os valores a partir do valor de Arq
    IFS='-.' read Nom Num Ext <<< "$Arq"
    Num1=`echo $Num | wc -L` #guarda o tamanho do numero contido em Arq
    if [[ "$Num1" < "$Mai" ]]  # ver *** abaixo
        then
            mv $Arq $Nom-$(printf "%0$Mai"d $Num).jpg
    fi
}

#***renomeia somente se a quantidade de caracteres do número armazenado em Arq 
for menor
-- 
Data Estelar 2455977,128079
http://sites.google.com/site/ficmatinf
Desejo-lhe Paz, Vida Longa e Prosperidade.
São Bem Vindas Mensagens no Formato texto UTF-8 com Acentos.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]