[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!.