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

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

awk não soma decimais ...


From: Marcelo G. Dias
Subject: awk não soma decimais ...
Date: Wed, 02 Feb 2005 23:50:04 -0200
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)

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
-----------------------------------------------------------------




reply via email to

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