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

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

Re: [shell-script] Trabalhando_com_vetores_e_combina��es_em_shell_script


From: aurelio
Subject: Re: [shell-script] Trabalhando_com_vetores_e_combinações_em_shell_script
Date: Sat, 24 May 2003 22:33:19 -0300 (ART)

ae thobias,

nossa cara, SHOW DE BOLA teu script meu.
essa sacada de incrementar a letra usando o decimal foi
massa mesmo, parabéns.

mas como eu sou mala, vou dar uns pitacos hehe

 --- Thobias Salazar Trevisan <address@hidden> escreveu: > 
> On Fri, 23 May 2003, Rodolfo Villanova wrote:
> > Guardo num arquivo chaves de pesquisa com o seguinte formato:
> > AA99, onde :
> >     AA = combinação das letras do alfabeto, de AA até ZZ;
> > e
> >     99 = combinação dos numerais, de 01 até 99.
> >
> > Meu script vai pegar a última chave inserida na última linha
> > desse arquivo e incrementar o valor para obter a próxima chave
> > a ser criada, que será inserida no final desse mesmo arquivo.
> 
> acho que pra isto você precisa de od, awk, bc e sed ;)

eu trocaria o od  pelo sed,
            o bc  pelo expr
            o awk pelo printf
            :)


$ type inc_letra
inc_letra is a function
inc_letra ()
{
    echo "ABCDEFGHIJKLMNOPQRSTUVWXYZA" | sed "s/.*$1\(.\).*/\\1/"
}
$ inc_letra H
I
$ inc_letra Z
A
$ a=33
$ a=`expr $a + 1`
$ echo $a
34
$ printf '%c%c%02d\n' A B 2
AB02

;)


> #!/bin/bash
> 
> a=`echo $1 | cut -c1`
> b=`echo $1 | cut -c2`
> n=`echo $1 | cut -c3-4`
> 
> let n=$n+1
> if [ $n = 100 ]
> then
>       n=0
>       b=`echo -n $b | od -d | sed -n '1s/[^ ]* *//p'`+1
>       b=`echo $b | bc`
>       if [ $b -gt 90 ]
>       then
>               b=65
>               a=`echo -n $a | od -d | sed -n '1s/[^ ]* *//p'`+1
>               a=`echo $a | bc`
>               if [ $a -gt 90 ]
>               then
>                       a=65
>               fi
>       fi
> fi
> echo $a $b $n | gawk '{printf("%c%c%02d\n",$1,$2,$3)}'
> ########################################################
> 
> Testando:
> 
> $ script.sh AA00
> AA01
> 
> $ script.sh AA99
> AB00
> 
> $ script.sh AZ99
> BA00
> 
> $ script ZZ99
> AA00
> 
> blz ?
> 
> thobias
> -------
> echo 9446046325380026818553633794429812592304650P | dc
> -------
> http://www.lcp.coppe.ufrj.br/~thobias
> 
> ____________________________
> |
> | Against - HTML Mail
> | Against - MS ATTACHMENTS
> |
> ----------------------------
> 
> 
> 
> ---------------------------------------------------------------------
> 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.listasdiscussao.cjb.net
> ---------------------------------------------------------------------
>  
> 
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html 
> 
>  

=====
-- 
ATENCAO: o www.verde666.org vai morrer, use www.aurelio.net
ATTENTION: www.verde666.org is no more, use www.aurelio.net

_______________________________________________________________________
Yahoo! Mail
O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso POP3, 
filtro contra spam. 
http://br.mail.yahoo.com/


reply via email to

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