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: Alain
Subject: Re: [shell-script] awk não soma decimais ...
Date: Fri, 04 Feb 2005 21:41:51 -0200
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)

Direto do help do awk:

[alain@alain progs]$ echo 0.5 | awk '{ soma += $1 }; END { print soma }'
0.5

Teu exemplo é um pouco complicado para testar ,as o awk funciona...

Alain

Fábio Batista escreveu:
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!.



---------------------------------------------------------------------
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
---------------------------------------------------------------------
Links do Yahoo! Grupos










reply via email to

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