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

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

Re: [shell-script] soma no AWK


From: Jonathan Lessa
Subject: Re: [shell-script] soma no AWK
Date: Wed, 17 Aug 2011 12:17:14 -0300

Outra opção:

$ while read linha; do set $(echo $linha); echo "$2 + $3" | sed "s/\\.//g ;
s/,/\\./g" | bc ; done < texto.txt

10.70
23.21
3112752.57
Alterando um pouco a forma que o colega passou (deve melhorar a performace
por não usar o 'cat'):
$ cut -d\  -f2,3 < texto.txt | tr -d \. | tr ,\  .+ | bc

10.70
23.21
3112752.57


Att.:
Jonathan Lessa


Em 17 de agosto de 2011 11:27, Cléoson Barreto
<address@hidden>escreveu:

> **
>
>
> Olá!
>
> Deve aparecer uma solução melhor, mas isso aqui deve funcionar:
>
> $ cat teste.txt
>
> PAULO 10,50 0,20
> JOAO 22,31 0,90
> KATIA 1.500,32 3.111.252,25
>
> $ cat teste.txt | cut -d" " -f2,3 | tr ".,\ " "x.+" | tr -d "x" | bc
> 10.70
> 23.21
> 3112752.57
>
> Com o comando "cut" utilizando o separador "," eu separo somente os
> números. Depois, com o comando "tr" eu substituo tudo o que "." por "x",
> ","
> por "." e "\ " (espaço em branco) por "x". Depois com o segundo comando
> "tr"
> removo o "x" e jogo tudo para a calculadora "bc".
>
> --
> []'s
> Cléoson.
>
> Em 17 de agosto de 2011 09:57, Matheus Dias <
> address@hidden> escreveu:
>
> > **
>
> >
> >
> > Amigos, estou com o seguinte problema.
> > Esse é um exemplo de meu arquivo texto
> >
> > PAULO 10,50 0,20
> > JOAO 22,31 0,90
> > KATIA 1.500,32 3.111.252,25
> >
> > E quero como resultado
> >
> > PAULO 10,70 (SOMA DE 10,50 + 0,20)
> > JOAO 23,21 (SOMA DE 22,31 + 0,90)
> > KATIA 3.112.752,57 (SOMA DE 1.500,32 + 3.111.252,25))
> >
> > Consigo somar as duas primeiras linhas(substituindo a virgula por ponto),
> > mas essa terceira linha com "."ponto e ","virgula, é o que esta mim
> > dificultando bastante.( tenho que retirar esse ponto para fazer a soma.
> Ja
> > tentei o GSUB para substituir e ele acaba substituindo tudo!
> >
> > Alguem com uma ideia para poder mim ajudar?
> > Agradeço desde ja!
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Att.:
Jonathan Lessa


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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