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

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

Re:[shell-script] vel-media


From: MrBiTs
Subject: Re:[shell-script] vel-media
Date: Sun, 21 Nov 2004 07:05:30 -0300

> MrBits, a identação o traiu, ao colar
> parte do conteudo do arquivo no email,
> o formato se perdeu.

Sacanagem.... o que eu faço ??? Peço o divórcio ? Mato a Identação e o safado 
com o qual ela me traiu ? Fundo a Associacao de Apoio aos Cornos da Identacao 
???

> Veja, se um dos comandos aqui tivesse retornado
> erro, eu não teria dois resultados para
> comparar. O que quero é realmente a média. 
> E tá dando um resultado bem diferente.
> azak@servidor:~$ cat /mnt/cl_ant/perfect_world/nohup.out|grep
> "download rate"| cut -d" " -f4|paste -s -d+|bc 
> 2143333.83
> azak@servidor:~$ awk '/download rate/ {num = num + $3 } END {printf
> "\n%5s", num}' /mnt/cl_ant/perfect_world/nohup.out 
> 
> 1816805
> O nome do arquivo não fui eu que escolhi . Veja o
> que está em 'info coreutils nohup'
> 
> If standard output is a terminal, it is redirected so that it is
> appended to the file `nohup.out';
> 
> Se vc fizer:
> nohup btdownloadheadless --url http://algum.torrent.que vc.quiser &
> vai ficar com um arquivo nohup.out
Continuo achando que nohup.out é um nomezinho escolhido as pressas :)

Vamos la... Para nao cair nos problemas da identacao ( safada, sem vergonha, 
vadia ), criei um arquivo somente com algumas linhas assim:

download rate:  6.15 kB/s

Entre o : e o 6.15 existem DOIS espacos. Rodei entao os seus comandos:

cat nohup.out|grep "download rate"| cut -d" " -f4|paste -s -d+|bc               
                       
67.65

awk '/download rate/ {num = num + $3 } END {printf "\n%5s", num}' nohup.out 
67.65

Ou seja: nada errado com os seus comandos, visto que eles retornaram o mesmo 
resultado. Como ja seus resultados na somatoria deram numeros diferentes, voce 
pode estar com registros inconsistentes no seu arquivo.

Para a média, fazemos:

num=`cat nohup.out|grep "download rate"| cut -d" " -f4|paste -s -d+|bc`
linhas=`cat nohup.out|grep "download rate"| cut -d" " -f4|wc -l`
echo "scale=2; $num / $linhas"|bc

e tenho 6.15

Em AWK:
awk '/download rate/ {num = num + $3 } END {printf "\n%5s", num / NR}' nohup.out
e tenho 6.15

No comando que vc passou anteriormente, voce fazia:

awk '/download rate/ {num = (num + $3) / NR} END {printf "\n%5s",num}' nohup.out
que, no meu exemplo, me da: 0.622123

Entao, é simples. Divida o total pelo numero de registros. Se vc ainda tiver 
resultados diferentes, o problema esta no seu arquivo, nao nos comandos.

[]´s


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



reply via email to

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