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

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

Re: [shell-script] Re: [ expr ] - Saída do AWK


From: Julio C. Neves
Subject: Re: [shell-script] Re: [ expr ] - Saída do AWK
Date: Fri, 12 Sep 2014 15:35:01 -0300

echo "scale=3; $(ls -l |grep arquivo.img | awk '{print $5}') / 1024 / 1024 / 1024" | bc

Em 12/09/2014 11:57, "Gustavo Filgueiras address@hidden [shell-script]" <address@hidden> escreveu:
 

Paulo,

   Obrigado pelas respostas, mas eu estou tentando fazer sem usar variavel, eu consegui chegar até essa linha
echo $(( $(ls -l |grep arquivo.img | awk '{print $5}') / 1024 / 1024 / 1024 ))

me retorna: 0

acredito que se eu tivesse conseguindo ver 2 casas decimais, retornaria: 0.09


Em 12 de setembro de 2014 11:41, Paulo Bettega address@hidden [shell-script] <address@hidden> escreveu:
Ainda na pergunta anterior :) com expr, e no awk acho que também dá.
(desculpem se entendi errado a pergunta).

$ ls -l etc.tgz|awk '{print $5}'
3160461

$ ls -l etc.tgz|awk '{print $5*8}'
25283688

$ expr $(ls -l etc.tgz|awk '{print $5}') \* 8
25283688

Meu pensamento na tua dúvida desse email, ficou meio feio mas
acho que faz o trabalho.

$ tamanho=$(ls -l etc.tgz|awk '{print $5}')
$ [ "$tamanho" -lt 1000000000 ] && echo 0$(bc <<<"scale=3;$tamanho/1000000000")GB
0.003GB

Abraços Paulo Bettega

On 12-09-2014 10:16, Gustavo Filgueiras address@hidden [shell-script] wrote:
> Caros,
>
>
>      Muito obrigado por todas as respostas e soluções, minha dúvida foi solucionada.
>      Porém pesquisando mais, estou com outra dúvida.
>
>      Gostaria de extrair o tamanho em GB, mas levando em conta o arquivo de 100MB, se eu der um ls
> -l --block-size=G |grep arquivo.img, vai me retornar 1GB.
>       ls -l --block-size=G |grep arquivo.img
>       -rw-r--r-- 1 root root 1G Sep 11 15:16 arquivo.img
>
>       Mas gostaria que me retorna-se mais preciso, de verdade ele deveria retornar ( 0.09765625 )
> mas se possivel cortar em 2 casas decimais. Procurei algo, mas nada funcionou bem, tentei usando
> printf mas sem sucesso.
>
>       0.09 GB
>
> Em 12 de setembro de 2014 02:11, Fernando Mercês address@hidden <mailto:address@hidden>
> [shell-script] <address@hidden <mailto:address@hidden>> escreveu:
>
>     __
>
>     Ok, última mensagem sobre... Mas acho que vale a pena ver opções diferentes pra mesma coisa:
>
>     $ stat -c %s*8 mail.php | bc
>     2272
>
>     Agora sim, fui. o/
>
>
>
>
>     Att,
>
>     Fernando Mercês
>     Linux Registered User #432779
>     www.mentebinaria.com.br <http://www.mentebinaria.com.br>
>     ------------------------------------
>     "Ninguém pode ser escravo de sua identidade; quando surge uma possibilidade de mudança é preciso
>     mudar". (Elliot Gould)
>
>     2014-09-12 2:01 GMT-03:00 Fernando Mercês <address@hidden <mailto:address@hidden>>:
>
>         De novo, sei que já resolveu o problema, mas se precisar de desempenho pra isso (for fazer
>         com muitos arquivos), fiz uma implementaçãozinha rápida em ANSI C, assim você não depende do
>         bash, bc, nem mesmo do Linux. Imitei a saída do wc. ;-)
>
>         $ gcc -o bits bits.c
>
>         $ ./bits mail.php .ssh/config .htcfg2
>         2272 mail.php
>         20376 .ssh/config
>         14064 .htcfg2
>         36712 total
>
>         $ ./bits mail.php
>         2272 mail.php
>
>         Aí se for o caso você altera como quiser, pra não imprimir o nome do arquivo, ou não
>         imprimir o total.. Enfim, tu que sabe. :)
>         Mesmo que não use, já me diverti. Sem erro. hehe
>
>         Abraço!
>
>
>
>         Att,
>
>         Fernando Mercês
>         Linux Registered User #432779
>         www.mentebinaria.com.br <http://www.mentebinaria.com.br>
>         ------------------------------------
>         "Ninguém pode ser escravo de sua identidade; quando surge uma possibilidade de mudança é
>         preciso mudar". (Elliot Gould)
>
>         2014-09-12 1:09 GMT-03:00 Fernando Mercês <address@hidden <mailto:address@hidden>>:
>
>             Opa, sei que já foi respondido, mas se você já sabe o nome do arquivo, por que usar ls |
>             grep? Eu faria direto, e talvez com o wc ao invés do ls ;-)
>
>             Com aritimética do bash:
>             $ echo $(($(wc -c < mail.php) * 8))
>             2272
>
>             Com aritimética do bc:
>             $ echo "$(wc -c < mail.php) * 8" | bc
>             2272
>
>             Abraço!
>
>
>
>             Att,
>
>             Fernando Mercês
>             Linux Registered User #432779
>             www.mentebinaria.com.br <http://www.mentebinaria.com.br>
>             ------------------------------------
>             "Ninguém pode ser escravo de sua identidade; quando surge uma possibilidade de mudança é
>             preciso mudar". (Elliot Gould)
>
>             2014-09-11 16:55 GMT-03:00 address@hidden <mailto:address@hidden>
>             [shell-script] <address@hidden <mailto:address@hidden>>:
>
>                 __
>
>                 Claro que a conversao no caso foi base 2 mas pode ser base=8 ou base=16 etc..
>                 Abracp
>
>
>
>
>
>


------------------------------------

------------------------------------

---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil


------------------------------------

Links do Yahoo Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    address@hidden

<*> O uso que você faz do Yahoo Grupos está sujeito aos:
    https://info.yahoo.com/legal/br/yahoo/utos/terms/




reply via email to

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