Outra sugestão:
echo 02 | awk '
function nome_do_mes(MM){
MM = MM + 0 # agora VIRE um NUMERO! eh uma ORDEM
print MM
mes="Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez"
split(mes,nummes," ")
return nummes[MM]
}
{
nmes=$1
print nome_do_mes(nmes)
}'
On 11/28/06, Darlon <[EMAIL PROTECTED]> wrote:
valeu Jr.
nao conhecia esta funcao:
strtonum
jah estah na minha lista de funcoes!
[]s
acosta
2006/11/28, edjunior <[EMAIL PROTECTED]>:
> hey,
>
> (mudando o mínimo da sua chamada em awk)
>
> onde aparece:
> nmes=$1
> pode substituir por:
> nmes=strtonum($1)
>
> Parece que o erro se en
opa Darlon! valeu a dica!
a solução fora do SHELL realmente funciona!
no entanto. eu obtenho a STRING utilizando a funcao..do AWK.
chamada SUBSTR
retirado do livro do Julio Neves - 6ed.:
substr(c1,p,n) - Retorna a subcadeia que comeca na posicao "p" de "c1"
com "n" caracteres
portanto.precisava u
Já pedindo desculpas...
Resolvi fora do awk, e vc tinha pedido pra resolver dentro.
Ok.
Como no awk os indices podem ser literais ( e na verdade sao), ele não dá
erro...
mas no seu script, vc pode realizar uma operação sobre o parãmetro passado pra
ele deixar de ser um literal. É meio que uma "g
hey,
(mudando o mínimo da sua chamada em awk)
onde aparece:
nmes=$1
pode substituir por:
nmes=strtonum($1)
Parece que o erro se encontrava nessa variavel que você utilizará como
índice do seu vetor de meses, pois em awk, os índices de array podem
ser strings de caracteres.
hasta!
jr.
Opa.
TUdo ok?
Cara... eh o seguinte..
eh soh fazer o shell reconhecer que vc está utilizando um numero ao inves de
uma string.
para isso eh soh colocar o numero assim:
$(( ))
ok?
ficaria assim:
echo $((02)) | awk '
function nome_do_mes(MM){
mes="Jan Fev Mar Abr