[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] awk e soma com ponto flutuante
From: |
Tiago Barcellos Peczenyj |
Subject: |
Re: [shell-script] awk e soma com ponto flutuante |
Date: |
Tue, 26 Jun 2007 15:54:27 -0300 |
awk: usando virgula no lugar do ponto decimal
$ cat arquivo
1,2
1,3
1,4
1,5
1,6
$ awk 'NR > 1{total += $1}END{print total}' arquivo
4
# agora vamos mudar o locale!
$ LC_ALL=pt_BR awk 'NR > 1{total += $1}END{print total}' arquivo
5,8
Simples :)
On 6/25/07, Tiago Barcellos Peczenyj <address@hidden> wrote:
>
> Vejamos...
>
> $ awk 'NR>1 {SOMA+=$4 } END { print "Soma: ",SOMA }' arquivo
>
> Soma: 11.30
>
> $ cat arquivo
> 1 2 3 4.4
> 1 2 3 5.5
> 2 3 4 5.8
>
> Agora, se ao inves de ponto decimal vc tiver virgula... ai pode estar o
> problema.
>
> Uma solucao 'rapida' seria trocar a virgula por ponto com tr
>
> outra seria acertar o localle, porem não imagino como fazer isso neste
> momento.
>
>
> On 6/25/07, address@hidden <address@hidden> wrote:
> >
> > Olá pessoal,
> >
> > Tenho uma tabela com números em ponto flutuante na coluna 4. Necessito
> > somar estes números e para isto tentei com o awk
> >
> > cat arquivo | awk '{ if (NR>1) SOMA+=$4 } END { print SOMA }'
> >
> > A soma deve ser feita a partir da segunda linha. O problema é que o SOMA
> > é um inteiro. Tem alguma forma de fazer isto com o awk?
> >
> > Até
> > Alves
> >
> >
>
>
>
> --
> Tiago B Peczenyj
> Linux User #405772
>
> http://peczenyj.blogspot.com/
--
Tiago B Peczenyj
Linux User #405772
http://peczenyj.blogspot.com/
[As partes desta mensagem que não continham texto foram removidas]