[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: |
Thobias Salazar Trevisan |
Subject: |
Re: [shell-script] Trabalhando com vetores e combinações em shell script |
Date: |
Sat, 24 May 2003 13:33:25 -0300 (BRT) |
ae rodolfo,
On Fri, 23 May 2003, Rodolfo Villanova wrote:
> Queria algo do tipo que sei funcionar em bash:
>
> > declare -a alfabeto[]=(A B C D E F G H I J K L M N O P Q R S T
> > U V W X Y Z)
> > echo ${alfabeto[2]}
> > C
isso você pode usar o sed pra simular. olhe:
$ alfabeto='A B C D E F G H I J K L M N O P Q R S T U V W X Y Z'
$ echo $alfabeto | sed 's/^\([^ ] \)\{4\}.*/\1/'
D
$ echo $alfabeto | sed 's/^\([^ ] \)\{1\}.*/\1/'
A
$ echo $alfabeto | sed 's/^\([^ ] \)\{20\}.*/\1/'
T
Basta trocar o valor entre {}, para a posição desejada.
> Já queimei minha cota de fosfato em algumas alternativas de
> solução do seguinte desafio:
> 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.
>
> Alguém conhece uma alternativa simples, o "Ovo de Colombo"?
> Sei que seria mais fácil realizar isso utilizando outras linguagens,
> mas preciso fazê-lo em script Korn Shell.
> Também não vale mudar essa chave-identificadora para que seja
> somente numérica.
> Awk ou Sed me ajudariam de alguma forma?
acho que pra isto você precisa de od, awk, bc e sed ;)
como não sei o que funciona em Korn Shell, não otimizei muita
coisa, o código pode ser bem menor se utilizar algumas
construções simples de bash.
como está, fica mais fácil para você adaptar caso ocorra algum
problema no seu ambiente. Ah, e mais legÃvel tamvém ;)
$ cat script.sh
#!/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
|
----------------------------
- Error no Script, Jefferson Gava, 2003/05/23
- Re: [shell-script] Error no Script, Frederico Argolo, 2003/05/23
- Seqüência :!$1, Mário Luis Ghoneim, 2003/05/23
- Re: [shell-script] Error no Script, Daniel Im, 2003/05/23
- Trabalhando com vetores e combinações em shell script, Rodolfo Villanova, 2003/05/23
- Re: [shell-script] Trabalhando com vetores e combinações em shell script,
Thobias Salazar Trevisan <=
- Re: [shell-script] Trabalhando_com_vetores_e_combinações_em_shell_script, aurelio, 2003/05/24
- RES: [shell-script] Trabalhando com vetores e combinações em shell script, Rodolfo Villanova, 2003/05/27
- Re: RES: [shell-script] Trabalhando com vetores e combinações em shell script, Thobias Salazar Trevisan, 2003/05/27
- RES: [shell-script] Trabalhando com vetores e combinações em shell script, Rodolfo Villanova, 2003/05/27
- Re: RES: [shell-script] Trabalhando com vetores e combinações em shell script, Thobias Salazar Trevisan, 2003/05/27
- filtrar linha de Log, Adriano da Silva Múfalo, 2003/05/26