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

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

RES: [shell-script] Trabalhando com vetores e combinações em shell scrip


From: Rodolfo Villanova
Subject: RES: [shell-script] Trabalhando com vetores e combinações em shell script
Date: Tue, 27 May 2003 17:30:36 -0300

Tobias,

Grande garoto!

Mataste a charada com uma pancada certeira!
Funcionou nos dois ambientes (SunOS 5.8 e OSF1 5.1)!

Vou ter que começar a estudar mais a fundo a lógica de execução do SED, pois 
dele só conheço o BeaBá!
Não "intindí" nada do que é aquele sed "s/.*$1\(.\).*/\\1/" !

Muito grato, amigo!

Rodolfo

-----Mensagem original-----
De: Thobias Salazar Trevisan [mailto:address@hidden]
Enviada em: terça-feira, 27 de maio de 2003 16:47
Para: address@hidden
Assunto: Re: RES: [shell-script] Trabalhando com vetores e combinações
em shell script



ae rodolfo,

On Tue, 27 May 2003, Rodolfo Villanova wrote:

> Acredito não haver me expressado com clareza, mas preciso montar
> algo semelhante para Korn Shell, que funcione sob Unix True64
> (Compaq/HP) e SunOS.
>
> Os testes que realizei com o excelente exemplo que elaboraste para
> ambiente bash infelizmente não funcionou como esperado naqueles
> ambientes.

hmmm, estou testando este com sh. acho que deve funcionar no seu
ambiente. Percebi que aquela minha solução tinha
algumas incompatibilidades com o sh. E para tirar o od, gawk, fiz
um 'merge' com a solução que o aurelio postou.

Testa esta:

#!/bin/ksh

inc_letra ()
{
    echo "ABCDEFGHIJKLMNOPQRSTUVWXYZA" | sed "s/.*$1\(.\).*/\\1/"
}

a=`echo $1 | cut -c1`
b=`echo $1 | cut -c2`
n=`echo $1 | cut -c3-4`

n=`expr $n + 1`
if [ $n = 100 ]
then
        n=0
        if [ "$b" = "Z" ];then
                b=A
                if [ "$a" = "Z" ];then
                        a=A
                else
                        a=`inc_letra $a`
                fi
        else
                b=`inc_letra $b`
        fi
fi
printf '%c%c%02d\n' $a $b $n

######################################################

testando em um SunOS 5.7.

$ ./x AA00
AA01
$ ./x AA99
AB00
$ ./x AZ99
BA00
$ ./x BZ99
CA00
$ ./x ZZ99
AA00

pelos menos acho que as mudanças, se necessárias, serão menores :)

blz ?

thobias
-------



reply via email to

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