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

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

Re: [shell-script] awk e soma com ponto flutuante


From: address@hidden
Subject: Re: [shell-script] awk e soma com ponto flutuante
Date: Mon, 25 Jun 2007 12:50:28 -0300
User-agent: Thunderbird 2.0.0.0 (X11/20070326)

Olá Tiago Barcellos,

Mas isto não é o mesmo que eu fiz?

O awk trabalha a variável SOMA como um inteiro e o resultado não é 11.30
e sim 10.

$ cat << EOF > arquivo
> 1 2 3 4.4
> 1 2 3 5.5
> 2 3 4 5.8
> EOF
 $ cat arquivo
1 2 3 4.4
1 2 3 5.5
2 3 4 5.8
$ awk 'NR>1 {SOMA+=$4 } END { print "Soma: ",SOMA }' arquivo
Soma:  10

Ou seja, 5.5+5.8 => 5+5=10 (apenas os inteiros)

A menos que tenha esquecido de algo?

Até,
Alves

> 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 <mailto:alves_list%40yahoo.com.br>
> <address@hidden <mailto:alves_list%40yahoo.com.br>> 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/ <http://peczenyj.blogspot.com/>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  



reply via email to

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