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: Julio C. Neves
Subject: Re: [shell-script] libreoffice odp para jpg ( solução-final)
Date: Tue, 21 Feb 2012 17:36:12 -0200

Fala Alysson,
vc está certo, porém não seria um erro e sim uma advertência. Ele avisa que
não vai mover, mas não faz nada errado.

Eu fecharia a saída de erros antes do mv e prompt... ;)

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 21 de fevereiro de 2012 17:29, Alysson Gonçalves de Azevedo <
address@hidden> escreveu:

> Julio, não sei afirmar pelo Jorge, mas acho que ele usou a outra forma por
> que supondo que Mai = 2 e Num = 10, o comando ficaria
>
> $ mv $Arq $Nom-$(printf "%0$Mai"d $Num).jpg
> $ mv arq-10.jpg arq-10.jpg
> e isso causa erro.
>
> Nesse caso, ou ele fecha a saida de erro ou ele só deve renomear quando Mai
> for maior que Num | wc -L.
>
> Me corrija se estiver errado. o/
>
> Alysson Gonçalves de Azevedo
> (11) 8491-7730
>
>
>
>
> Em 21 de fevereiro de 2012 16:59, Julio C. Neves
> <address@hidden>escreveu:
>
> > **
> >
> >
> > Jorge,
> > acho que vc não entendeu legal o conceito do wc -L e do printf. Repare:
> >
> > $ cat > lixo
> > 1
> > 22
> > 333
> > 4444
> > 55555
> > 1231
> > 3234
> > 34
> > $ wc -L lixo
> > 5 lixo
> > $ cat lixo | wc -L
> > 5
> > $ Mai=$(cat lixo | wc -L)
> > $ while read Num
> > do
> > printf "%0${Mai}d\n" $Num
> > done < lixo
> > 00001
> > 00022
> > 00333
> > 04444
> > 55555
> > 01231
> > 03234
> > 00034
> >
> > Como vc viu o wc -L me devolveu o tamanho da maior *linha* de lixo,
> então o
> > teste que vc faz no fim do seu script é desnecessário, pois $Mai sempre
> > conterá a qtd de algarismos do número de maior tamanho.
> >
> > Assim sendo, pode trocar:
> >
> > 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
> >
> > por um simples:
> >
> > mv $Arq $Nom-$(printf "%0$Mai"d $Num).jpg
> >
> > 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 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]
> >
> >
> >
>
>
> [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
>
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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