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: .:::: Marcio ::::.
Subject: Re: [shell-script] awk não soma decimais ...
Date: Wed, 5 Jan 2005 15:17:04 -0200

Em Wed, 02 Feb 2005 23:50:04 -0200
"Marcelo G. Dias" <address@hidden> digitou:
Sobre: [shell-script] awk não soma decimais ...


Oi Marcelo,

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

        É porque os números estão com ".". Substiua-os por ","
utilizando o sed ou até mesmo o awk para fazer isto.

        Demo:

$ echo -e "12,23\n1,34\n23,12" | awk '{ num += $0 } END
{printf "%3.7f\n", num }'       -| 36,6900000
> 
> veja script ...
> 
> 
> 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.
> 
        Desta versão em diante o gawk "fala" português ... ;-)

        Dê uma olhada: $ awk --version
        
> 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 ???

        Usa o sed/awk para fazer esta substituição, ou ajuste
a linguagem do seu sistema para o inglês (LC_ALL, ...)
-- 
" O conceito que temos de Deus determina nosso modo de
viver."

                //// 
              ( O O )
    =======oOO==(_)==OOo============
    Márcio Alexandre S. Mendonça 
    address@hidden    
    Linux User #298595
           .oooO   Oooo.
    =======(   )===(   )============
            \ (     ) /
             \_)   (_/



-- 
" Procura apresentar-se a Deus aprovado, como obreiro
que não tem de que se envergonhar e que maneja bem a
palavra da verdade. 2Tm 2:15"

                //// 
              ( O O )
    =======oOO==(_)==OOo============
    Márcio Alexandre S. Mendonça 
    address@hidden    
    Linux User #298595
           .oooO   Oooo.
    =======(   )===(   )============
            \ (     ) /
             \_)   (_/



reply via email to

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