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

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

Re: [shell-script] Somando uma lista


From: Alan Diones
Subject: Re: [shell-script] Somando uma lista
Date: Tue, 18 Dec 2007 12:01:33 -0200

obrigado
  ----- Original Message ----- 
  From: Arthur Renato Mello 
  To: address@hidden 
  Sent: Tuesday, December 18, 2007 11:26 AM
  Subject: Re: [shell-script] Somando uma lista


  Alan,

  basicamente eh uma alteracao do codigo que o Flavio mandou, para ao
  inves de contar, somar os valores.

  Primeiro passamos a saida do comando ls -la para ser tratada pelo awk.

  Em awk, normalmente temos um bloco do tipo CONDICAO { ACAO }.
  O awk irá ler a entrada, linha por linha, e para cada linha da entrada
  irá testar as condições, realizando as ações correspondentes.

  No exemplo:
  $ ls -la | awk '{print $5}'

  4096
  4096
  493
  582

  nao temos nenhuma condicao, entao o bloco "print $5" sera executado
  para todas as linhas.

  Como nao alteramos o delimitador padrao do awk, ele esta usando o
  espacamento, por isso a variavel $5 possui o conteudo da quinta coluna
  da entrada, separada por espacamento, ($1 da primeira, $2 da
  segunda...).

  No comando usamos outros 2 blocos (voce pode ter quantos blocos
  desejar) com 2 condicoes especiais, BEGIN (executada antes do awk
  comecar a interpretar a entrada) e END (executada após o processamento
  do último registro).

  Na acao do BEGIN, iniciamos uma variavel total com zero.
  Na acao do bloco principal incrementamos essa variavel com o valor de
  $5 (e ainda imprimimos $5).
  E, finalmente, na acao do bloco END, imprimimos a string "Total:" e o
  valor final da variavel total.

  []s
  Arthur

  On Dec 18, 2007 10:59 AM, Alan Diones <address@hidden> wrote:
  >
  >
  >
  >
  >
  >
  > Arthur, gostei da idéia, me explica passo a passo como funciona, tem
  > jeito?
  >
  > ls -la | awk 'BEGIN{total=0}; {total+=$5; print $5}; END{print "Total:",
  > total}'
  >
  > Alan Diones
  > Em Ter, 2007-12-18 às 10:52 -0200, Arthur Renato Mello escreveu:
  >
  > > Leonardo,
  > >
  > > ls -la | awk 'BEGIN{total=0}; {total+=$5; print $5}; END{print
  > > "Total:", total}'
  > >
  > > []s
  > > Arthur
  > >
  > > On Dec 18, 2007 10:42 AM, Leonardo D'Angelo Goncalves
  > > <address@hidden> wrote:
  > > >
  > > >
  > > >
  > > >
  > > >
  > > >
  > > > tá mais eu quero somar e naum contar...hehe
  > > >
  > > > Em 18/12/07, Flavio Junior <address@hidden> escreveu:
  > > >
  > > > >
  > > > > Com o proprio awk:
  > > > >
  > > > > $ ls -la | awk 'BEGIN{count=0}; {count++; print $5} END{ print
  > > "Total:",
  > > > > count}'
  > > > >
  > > > > mas pode fazer isso até com o wc -l mesmo..
  > > > >
  > > > > --
  > > > >
  > > > > Flávio do Carmo Júnior
  > > > >
  > > > > On Dec 18, 2007 10:32 AM, Leonardo D'Angelo Goncalves
  > > > >
  > > > > <leonardodg@xxxxxxxxxxx> wrote:
  > > > > >
  > > > > >
  > > > > >
  > > > > >
  > > > > >
  > > > > >
  > > > > > Bom dia
  > > > > >
  > > > > > Gostaria de saber como somar a lista gerada por este comando,
  > > pois
  > > > > > tenho varias listas e gostaria de ter um total:
  > > > > >
  > > > > > ls -la | awk '{print $5}' > lista.txt
  > > > > >
  > > > > > Obrigado
  > > > > >
  > > > >
  > > > >
  > > > >
  > > >
  > > > [As partes desta mensagem que não continham texto foram removidas]
  > > >
  > > >
  > >
  > >
  > >
  > >
  >
  > 


   

  __________ Informação do NOD32 IMON 2730 (20071218) __________

  Esta mensagem foi verificada pelo NOD32 sistema antivírus
  http://www.eset.com.br


  __________ Informação do NOD32 IMON 2730 (20071218) __________

  Esta mensagem foi verificada pelo NOD32 sistema antivírus
  http://www.eset.com.br


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



reply via email to

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