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)


From: Julio C. Neves
Subject: Re: [shell-script] libreoffice odp para jpg ( solução)
Date: Tue, 21 Feb 2012 09:24:58 -0200

Achei 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>
).

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.

Abcs,
Julio
*Já foi lançado "Bombando o
Shell<http://www.brasport.com.br/index.php?dispatch=products.view&product_id=666>
". *
*Show **de interfaces gráficas sob Shell!*
*
*



Em 20 de fevereiro de 2012 21:03, Jorge Barros de Abreu <
address@hidden> escreveu:

> On Monday 20 February 2012 13:19:55 you wrote:
> > Jorge, não sei se entendi legal, mas pelo que entendi, seu script só
> > funcionaria se a apresentação tivesse entre 10 e 99 slides.
> > Veja só como eu faria:
>
> Oi Júlio
>
> Obrigado por mais uma preciosa pérola:$Nom-$(printf "%0$Mai"d $Num)
>
> Acrescentei uns comentários e engordei um pouco o script
>
> ?As varáveis usadas no script são automaticamente canceladas/limpas e os
> recursos de memória são
> automaticamente liberados ou tenho que liberar os recursos explicitamente
> com o comando unset?
>
>
>
>
> ##############################
> #!/bin/bash
> # $1 nome da apresentacao a ser convertida com a extensão pdf explicitada
> #obtida a partir o libreoffice impress
> NOME=`echo $1 | cut -d '.' -f 1`     #parte do nome antes do ponto
> EXTENSAO=`echo $1 | cut -d '.' -f 2` #extensao do nome
> if [[ "$EXTENSAO" != "PDF" ]] && [[ "$EXTENSAO" != "pdf" ]]
>    then
>    echo -e "\nA extensao tem que ser ou pdf ou PDF"
>    exit
> fi
> unset EXTENSAO
> convert "$1" "$NOME".jpg
> # cut isola os números e wc -L pega o maior tamanho
> 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 nota abaixo
>        then
>            mv $Arq $Nom-$(printf "%0$Mai"d $Num).jpg
>    fi
> }
> ##############################
>
> nota: if [[ "$Num1" < "$Mai" ]] renomeia somente se a quantidade de
> caracteres do número armazenado
> em Arq for menor
>
>
>
>
>
>
>
> >
> > convert "$1" $Nome.jpg
> >
> > # cut isola os números e wc -L pega o maior tamanho
> > Mai=$(ls *-[0-9]*.jpg | cut -f2 -d- | cut -f1 -d. | wc -L)
> >
> > for Arq in $(ls *-[0-9]*.jpg)
> > {
> >     IFS='-.' read Nom Num Ext <<< "$Arq"
> >     mv $Arq $Nom-$(printf "%0$Mai"d $Num).jpg
> > }
> >
> > Dentro do for eu mudei o IFS temporariamente (repare que não tem ponto e
> > vírgula entre a atribuição e o cmd read. Por isso esse IFS só vale para o
> > read) para não necessitar de um monte de cut. O último parâmetro ($Ext) é
> > desnecessário pois todos serão, obrigatoriamente jpg.
> > No mv usei o printf para colocar zeros à esquerda. Supondo que $Mai fosse
> > 3, e $Num fosse 7, o printf formado seria:
> > printf "%03"d 5
> > que produziria 005.
> >
> > Abcs,
> > Julio
> > *Já foi lançado "Bombando o
> > Shell<
> http://www.brasport.com.br/index.php?dispatch=products.view&product_i
> > d=666> ". *
> > *Show **de interfaces gráficas sob Shell!*
> > *
> > *
> >
> >
> >
> > Em 20 de fevereiro de 2012 10:56, Jorge Barros de Abreu <
> >
> > address@hidden> escreveu:
> > > **
> > >
> > >
> > > Olá.
> > >
> > > Durante muito tempo e por questões de compatibilidade tentei exportar
> > > apresentações odp para o
> > > formato jpg. Nativamente o libreoffice/broffice/openoffice faz uma
> > > conversão de slide por vez.
> > >
> > > Para fazer a conversão da apresentação toda de uma tacada só você deve
> > > primeiramente exportar para
> > > pdf e a seguir usar o comando convert
> > >
> > > convert apresentacao.pdf apresentacao.jpg
> > >
> > > Será gerado um jpg para cada slide.
> > >
> > > a numeração dos arquivos gerados precisa ser ajustada caso contrário
> será
> > > mostrada na sequência
> > > incorreta. O 10 será mostrado ao lado do 100 por exemplo. a numeração
> do
> > > slide 10 deve ser mudada
> > > para 010.
> > >
> > > Criei um script(tstado no slackware) para fazer a mudança nos nomes de
> > > uma só vez:
> > >
> > > #!/bin/bash
> > > #nome da apresentacao a ser convertida com a extensão PDF/pdf
> explicitada
> > > NOME=`echo $1 | cut -d '.' -f 1` #parte do nome antes do ponto
> > > EXTENSAO=`echo $1 | cut -d '.' -f 2` #extensao do nome
> > > if [[ "$EXTENSAO" != "PDF" ]] && [[ "$EXTENSAO" != "pdf" ]]
> > > then
> > > echo -e "\nA extensao tem que ser ou pdf ou PDF"
> > > exit
> > > fi
> > > unset EXTENSAO
> > > convert $1 $NOME.jpg
> > > MEIO="0"
> > > for (( i=0 ; i<10 ; i++ ))
> > > do
> > > mv $NOME"-"$i".jpg" $NOME"-"$MEIO$i".jpg"
> > > done
> > > unset NOME MEIO
> > >
> > > Até.
> > >
> > > --
> > > Data Estelar 2455976,000764
> > > 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.
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> > ---------------------------------------------------------------------
> > 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
> >
> --
> Data Estelar 2455976,425324
> 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]



reply via email to

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