obrigado ----- Original Message ----- From: Arthur Renato Mello To: shell-script@yahoogrupos.com.br 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 <[EMAIL PROTECTED]> 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 > > <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > > > > > > > > tá mais eu quero somar e naum contar...hehe > > > > > > Em 18/12/07, Flavio Junior <[EMAIL PROTECTED]> 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 > > > > > > > > <[EMAIL PROTECTED]> 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]