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

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

Re: funcoes-no-awk


From: darlonv
Subject: Re: funcoes-no-awk
Date: Tue, 28 Nov 2006 18:46:07 -0000
User-agent: eGroups-EW/0.82

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 "gamb", mas funciona.
Acabei de
testar.

Fica assim:

 ================
echo 2 | awk '
 function nome_do_mes(MM){
 mes="Jan Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez"
 split(mes,nummes," ")
 return nummes[MM]
 }
 {
 nmes=$1+0
 print nome_do_mes(nmes)
 }'
 ================

Testa ae.

Falow.


--- Em address@hidden, Darlon <darlonv@...> escreveu
>
> 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:
> 
> $(( <numero> ))
> 
> ok?
> 
> ficaria assim:
> ================
>  echo $((02)) | awk '
>   function nome_do_mes(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)
>  }'
> ================
> 
> Agora vc pode colocar quantos 0's quiser, já que está trabalhando
com números, 
> e não com caracteres.
> 
> Tenta ae!
> 
> Falow.
> 
> Em Terça 28 Novembro 2006 13:51, Ricardo Acosta escreveu:
> > Camaradas.
> > aqui estou novamente com duvidas na utilizacao do AWK.
> >
> > caso entendam que está fora do escopo da lista. fiquem a vontade para
> > advertir! Como tenho duvida a respeito, vou arriscar!rs!
> >
> > criei uma funcao no AWK.vejam:
> > ...
> > acosta@clima: shell$ cat funcao.sh
> > #!/bin/bash
> > echo 2 | awk '
> >  function nome_do_mes(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)
> > }'
> > ...
> >
> > ao executar tenho:
> > ...
> > acosta@clima: shell$ ./funcao.sh
> > Fev
> > ...
> >
> > otimo. funciona perfeitamente, só que alterando para
> > "echo 02"  ...em vez do...  "echo 2"
> >
> > o resultado é nulo/vazio:
> > ...
> > acosta@clima: shell$ ./funcao.sh
> >
> > ...
> >
> > alguém tem alguma dica...sobre como corrigir isso!?
> > ah! lembrando que a correção seja feita dentro do AWK.... pensei em
> > algo, ou alguma opcao q ele  tenha de lidar com formatos.
> > pesquisei. e nao encontrei!
> >
> > []s
> > acosta
> 
> -- 
> 
> 
> ----------------------------------------------------------------
> Darlon Vasata
> User Linux #430663
> My machines registered: Supersonic #335810
> ----------------------------------------------------------------
> Let's Code!
> ----------------------------------------------------------------
>




reply via email to

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