[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] libreoffice odp para jpg ( solução-final)
From: |
Alysson Gonçalves de Azevedo |
Subject: |
Re: [shell-script] libreoffice odp para jpg ( solução-final) |
Date: |
Tue, 21 Feb 2012 16:48:35 -0200 |
Posso dar algumas dicas sobre outras formas de fazer as mesmas coisas? ^^
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
>
vc resolve isso com
if [ -z "$(grep -i '.pdf$' <<< $1)" ]; then
echo -e "\nA extensao tem que ser ou pdf ou PDF"
exit 1 #Retorne algum código de erro
fi
e para retornar a base de um arquivo use o comando "basename"
> NOME=`echo $1 | rev | cut -d / -f 1 | rev | cut -d '.' -f 1`
>
vc pode usar simplesmente
NOME=$(basename $1 .pdf)"
Espero que essas dicas te ajudem no futuro.
Alysson Gonçalves de Azevedo
(11) 8491-7730
Em 21 de fevereiro de 2012 13:22, Jorge Barros de Abreu <
address@hidden> escreveu:
> 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.
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>
[As partes desta mensagem que não continham texto foram removidas]
- libreoffice odp para jpg (solução), Jorge Barros de Abreu, 2012/02/20
- Re: [shell-script] libreoffice odp para jpg (solução), Julio C. Neves, 2012/02/20
- Re: [shell-script] libreoffice odp para jpg ( solução), Jorge Barros de Abreu, 2012/02/21
- Re: [shell-script] libreoffice odp para jpg ( solução), Julio C. Neves, 2012/02/21
- Re: [shell-script] libreoffice odp para jpg ( solução-final), Jorge Barros de Abreu, 2012/02/21
- Re: [shell-script] libreoffice odp para jpg ( solução-final),
Alysson Gonçalves de Azevedo <=
- Re: [shell-script] libreoffice odp para jpg ( solução-final), Julio C. Neves, 2012/02/21
- Re: [shell-script] libreoffice odp para jpg ( solução-final), Alysson Gonçalves de Azevedo, 2012/02/21
- Re: [shell-script] libreoffice odp para jpg ( solução-final), Julio C. Neves, 2012/02/21