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

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

Re: [shell-script] awk não soma decimais ...


From: Fábio Batista
Subject: Re: [shell-script] awk não soma decimais ...
Date: Fri, 4 Feb 2005 17:38:30 -0300

O mais seguro é sempre definir a linguagem que o sistema irá utilizar:

$ LANG=C awk .......


Fábio David Batista
address@hidden
http://nerd-o-matic.blogspot.com

On Wed, 02 Feb 2005 23:50:04 -0200, Marcelo G. Dias <address@hidden> wrote:
>  Galera veja só ...
>  o campo 16 do arquivo teste.txt tem ...
>  ::25.90::
>  ::236.00::
>  ::71.06::
>  ::100.00::
>  ::25.90::
>  
>  Todos tem no campo 8 (01|03), então passa ser visto como números
>  negativos e no campo 13 todos atendem o mesmo valor ~ /03003/, desta
>  forma permitindo a soma {SOMA += $16}, e imprimindo somente o total ao
>  final, só que as casas decimais não são somadas dando o resultado de R$
>  -457,00 em vez de R$ -458,86 :-(
>  
>  veja script ...
>  
>  $ awk -F"::" '{if ($8 ~ /01|03/) $16 = -$16} {if ($13 ~ /03003/) {SOMA
>  += $16}} END {printf "%10.2f \n", SOMA}' teste.txt
>  $ -457,00
>  
>  Ps.: Uma coisa que observei é que a versão "GNU Awk 3.1.4" a saída das
>  casas decimais são separadas por virgula e não por ponto como no padrão
>  inglês, e meu arquivo esta separado por ponto e sem separador de milhar.
>  
>  Ai vai a pergunta :
>  É possível subistituir no awk o ponto por virgula somente no campo 16,
>  para fazer a soma, já que o mesmo engloba as funções da família
>  [ef]?grep e sed ???
>  
>  -- 
>  \|||||/
>  (o o)       *** Seja Livre e evite a pirataria use GNU/Linux ***
>  --( )-0ooo-------------------------------------------------------
>  | MARCELO GIOVANNI DIAS - WEBMASTER
>  | E-mail: address@hidden - Site : http://www.boletim.net
>  -----------------------------------------------------------------
>  
>  
>  
> 
>  ---------------------------------------------------------------------
>  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.listas-discussao.cjb.net
>  ---------------------------------------------------------------------
>  
> 
>  
>  
>  Yahoo! Grupos, um serviço oferecido por: 
>  
>  PUBLICIDADE
>  
>  ________________________________
>  Links do Yahoo! Grupos
>  
> Para visitar o site do seu grupo na web, acesse:
> http://br.groups.yahoo.com/group/shell-script/
>   
> Para sair deste grupo, envie um e-mail para:
> address@hidden
>   
> O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
> Yahoo!.


reply via email to

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