[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]