[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: [ expr ] - Saída do AWK
From: |
Paulo Bettega |
Subject: |
Re: [shell-script] Re: [ expr ] - Saída do AWK |
Date: |
Fri, 12 Sep 2014 15:26:47 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.1.0 |
Olá Ronaldo, valeu o link, muito bom. Com printf dá pra escolher
as casas decimais.
Tive que substituir o ponto decimal pela vírgula, provavelmente
por causa da localidade.
ksh -c 'n1=12,345678;n2=901,234;echo '\''$n1 + $n2 = '\''$(( $n1 + $n2 ));echo '\''$n1 * $n2 ='\''
$(( $n1 * $n2 ));'
$n1 + $n2 = 913,579678
$n1 * $n2 = 11126,344766652
ksh -c 'n1=12,345678;n2=901,234;printf "\$n1 + \$n2 = %.3f\n" $(( $n1 + $n2 ));printf "\$n1 * \$n2 =
%.3f\n" $(( $n1 * $n2 ));'
$n1 + $n2 = 913,580
$n1 * $n2 = 11126,345
Abraços Paulo Bettega
On 12-09-2014 14:51, Ronaldo Ferreira de Lima address@hidden [shell-script]
wrote:
On Fri, Sep 12, 2014 at 12:31:59PM -0300, Paulo Bettega address@hidden wrote:
> Com a aritmética do shell não dá porque não trabalha com casas decimais.
O zsh e o ksh não possuem as mesmas limitações que o bash e o csh para
trabalhar com ponto flutuante. De qualquer forma, para fins didáticos,
há pelo menos uma forma de contornar essa limitação:
http://tecnoveneno.blogspot.com/2011/10/bash-aritmetica-de-ponto-flutuante.html
> A solução do Rodrigo funciona, mas tem que tirar as divisões do awk e mandar
> pro bc senão a opção scale fica sem efeito. Ou então fazer tudo dentro
> do awk, mas não sei como.
>
> echo "scale=3;$(ls -l etc.tgz|awk '{print $5/1024/1024/1024}')"| bc
> .00294341
>
> echo "scale=3;$(ls -l etc.tgz|awk '{print $5}')/1024/1024/1024"| bc
> .002
É incoveniente usar awk e bc juntos.
$ awk '{printf "%0.3f", $5/1024/1024/1024}' <(ls -l etc.tgz)
ou
$ bc -q <<< "scale=3;$(ls -l arquivo|cut -d' ' -f5)/1024/1024/1024"
[]'s
--
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------
http://tecnoveneno.blogspot.com
- Re: [shell-script] Re: [ expr ] - Saída do AWK, (continued)
- Re: [shell-script] Re: [ expr ] - Saída do AWK, Paulo Bettega, 2014/09/12
- Re: [shell-script] Re: [ expr ] - Saída do AWK, Rodrigo Tenorio, 2014/09/12
- Re: [shell-script] Re: [ expr ] - Saída do AWK, Rodrigo Tenorio, 2014/09/12
- Re: [shell-script] Re: [ expr ] - Saída do AWK, Rodrigo Tenorio, 2014/09/12
- Re: [shell-script] Re: [ expr ] - Saída do AWK, Paulo Bettega, 2014/09/12
- Re: [shell-script] Re: [ expr ] - Saída do AWK, Gustavo Filgueiras, 2014/09/12
- Re: [shell-script] Re: [ expr ] - Saída do AWK, Ronaldo Ferreira de Lima, 2014/09/12
- Re: [shell-script] Re: [ expr ] - Saída do AWK, Fernando Mercês, 2014/09/12
- Re: [shell-script] Re: [ expr ] - Saída do AWK, Ronaldo Ferreira de Lima, 2014/09/12
- Re: [shell-script] Re: [ expr ] - Saída do AWK, Ronaldo Ferreira de Lima, 2014/09/12
- Re: [shell-script] Re: [ expr ] - Saída do AWK,
Paulo Bettega <=
- Re: [shell-script] Re: [ expr ] - Saída do AWK, Julio C. Neves, 2014/09/12
Re: [shell-script] [ expr ] - Saída do AWK, Julio C. Neves, 2014/09/12