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

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

Re: [shell-script] Res: Calculo em Centesimos


From: Julio C. Neves
Subject: Re: [shell-script] Res: Calculo em Centesimos
Date: Thu, 8 Dec 2011 20:03:35 -0200

Fala Willian,
fiz metade, mas se vc entender, pode fazer o resto. Veja:

# Horas dos inícios
$ HI=$(cut -f1 -d: Arq)
# Minutos dos inícios
$ MI=$(cut -f2 -d: Arq | xargs -n1 echo '* 3600 +')
# Segundos dos inícios
$ SI=$(cut -f3 -d: $Arq | cut -f1 -d' ' | xargs -n1 echo '* 60 +')
# Das 3 linhas acima, resultou:
$ echo "$HI"
14
14
14
14
14
14
14
14
14
14
$ echo "$MI"
* 3600 + 54
* 3600 + 54
* 3600 + 54
* 3600 + 55
* 3600 + 55
* 3600 + 55
* 3600 + 56
* 3600 + 56
* 3600 + 56
* 3600 + 57
$ echo "$SI"
* 60 + 30
* 60 + 32
* 60 + 54
* 60 + 7
* 60 + 38
* 60 + 53
* 60 + 28
* 60 + 30
* 60 + 34
* 60 + 20

# Posso juntar as três variáveis com um paste, veja:

$ paste -d' ' <(echo "$HI") <(echo "$MI") <(echo "$SI")
14 * 3600 + 54 * 60 + 30
14 * 3600 + 54 * 60 + 32
14 * 3600 + 54 * 60 + 54
14 * 3600 + 55 * 60 + 7
14 * 3600 + 55 * 60 + 38
14 * 3600 + 55 * 60 + 53
14 * 3600 + 56 * 60 + 28
14 * 3600 + 56 * 60 + 30
14 * 3600 + 56 * 60 + 34
14 * 3600 + 57 * 60 + 20

# Epa, formei uma conta. Vamos calcular isso e guardar em TotSegIni:

$ TotSegIni=$(paste -d' ' <(echo "$HI") <(echo "$MI") <(echo "$SI") | bc)
$ echo "$TotSegIni
53670
53672
53694
53707
53738
53753
53788
53790
53794
53840

Pronto! Já reduzi todos os horários dos inícios em segundos.

Já fiz o inicio, agora é sua vez de calcular TotSegFin com os horários
finais e para finalizar fazer:

$ paste -d- <(echo "$TotSegIni") <(echo "$TotSegFin") | bc

Aí vc terá as diferenças (em segundos) entre os horários de início e de
fim, tudo feito em 9 linhas.

Abcs,
Julio
*Já foi lançado "Bombando o
Shell<http://www.brasport.com.br/index.php?dispatch=products.view&product_id=666>
". *
 *Show **de interfaces gráficas sob Shell!*
*
*



Em 8 de dezembro de 2011 17:10, William Alves dos Santos <
address@hidden> escreveu:

> **
>
>
> Caros,
>
> Ficou dessa forma, desprezei os centesimos para simplicar as coisas, e o
> tratamento realmente será necessário para descobrir tempos superiores a 1
> segundo.
>
> Arquivo
>
> 14:54:30 14:54:31
> 14:54:32 14:54:33
> 14:54:54 14:54:55
> 14:55:7 14:55:8
> 14:55:38 14:55:39
> 14:55:53 14:55:54
> 14:56:28 14:56:31
> 14:56:30 14:56:33
> 14:56:34 14:56:35
> 14:57:20 14:57:21
>
> cat log.tmp | tr ':' ' ' | while read LIN; do
> hi=`echo $LIN | awk '{print $1}'`
> mi=`echo $LIN | awk '{print $2}'`
> si=`echo $LIN | awk '{print $3}'`
> hsi=`expr ${hi} \* 3600`
> msi=`expr ${mi} \* 60`
> ssi=`echo $si`
> ini=`echo $hsi $msi $ssi | tr ' ' '+' | bc`
> hf=`echo $LIN | awk '{print $4}'`
> mf=`echo $LIN | awk '{print $5}'`
> sf=`echo $LIN | awk '{print $6}'`
> hsf=`expr ${hf} \* 3600`
> msf=`expr ${mf} \* 60`
> ssf=`echo $sf`
> fim=`echo $hsf $msf $ssf | tr ' ' '+' | bc`
> echo $fim $ini | tr ' ' '-' | bc
> done
>
> Abraços
>
> *William Alves dos Santos*
> **Cel.: +55 (11) 6835 8172
>
> <address@hidden> <http://www.proatividadeweb.com>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


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



reply via email to

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