[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: awk não soma decimais ...
From: |
Marcelo G. Dias |
Subject: |
Re: awk não soma decimais ... |
Date: |
Sat, 05 Feb 2005 20:47:44 -0200 |
User-agent: |
Mozilla Thunderbird 1.0 (X11/20041206) |
all...
galera acabei achando a resposta via re-leitura da bíblia de shell
script do "Pastor" Julio ... :-)
vai ai o que achei para resolver o problema com a soma das casas decimais.
awk -F"::" '{VALOR=$16} sub (/\./, "," , VALOR ) {if ($8 ~ /01|03/)
VALOR = -VALOR} {if ($13 ~ /03002/) {SOMA += VALOR}}END {printf "%10.2f
\n", SOMA}' teste.txt
explicando ... :-)
Crio a variável VALOR com a cadeia de caracteres do campo 16
{VALOR=$16}
Substituo o "." (PONTO) POR "," (VIRGULA) na variável VALOR
sub (/\./, "," , VALOR )
Se campo 8 conter 01 ou 03 torna a variável VALOR negativa
{if ($8 ~ /01|03/) VALOR = -VALOR}
Se campo 13 conter 03002 variável SOMA é igual VALOR + SOMA
{if ($13 ~ /03002/) {SOMA += VALOR}}
Ao final imprimir variável SOMA
END {printf "%10.2f \n", SOMA}
Aproveito para agradecer as respostas da galera pela lista e em pvt.
--
\|||||/
(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
-----------------------------------------------------------------