Fala Emmanuel, não resisto a um one-liner. :) $ echo $[$[$(cut -f1 -d: tempo|paste -sd+)]*60+$(cut -f2 -d: tempo|paste -sd+)] minutos 562 minutos
Abraços, Julio 2009/7/31 [email protected] <[email protected]> > > > Saudações aos colegas da lista. > > Bom, o problema parece bem simples, mas como sou iniciante, já quebrei > a cabeça, ja fiz de varias formas, > e não tá dando certo. > > Bom, tenho um arquivo (tempo.txt) com varias linhas no formato > hora:minuto ... > > $ cat tempo > 0:48 > 1:05 > 1:10 > 1:10 > 1:10 > 1:17 > 1:19 > 1:23 > ... (sao 71 valores) > > Estou precisando calcular o valor total em minutos : > > ((hora * 60) + minutos)) > > de cada linha .... > > Bom a maneira que tentei fazer foi a seguinte: > > estou usando um cut para separar a hora dos minutos e jogar cada valor > em um arquivo separado: > > cat tempo | cut -f1 -d: > tempo_hora > > cat tempo | cut -f2 -d: > tempo_minuto > > em seguida conto o numero de linhas do arquivo tempo: > > LINHAS=`cat tempo | wc -l` > > para poder fazer um for .... > > for i in `seq $LINHAS` > do > HORA=`awk NR==$i tempo_hora` > MINUTO=`awk NR==$i tempo_minuto` > TEMPO=$[(HORA*60)+MINUTO] > echo $TEMPO >> total_minutos > done > > Segue o script : > > +++++++++++++++++++++++++++++++++++++ > > #!/bin/bash > > cat tempo | cut -f1 -d: > tempo_hora > > cat tempo | cut -f2 -d: > tempo_minuto > > LINHAS=`cat tempo | wc -l` > > rm -rf total_minutos > > for i in `seq $LINHAS` > do > HORA=`awk NR==$i tempo_hora` > MINUTO=`awk NR==$i tempo_minuto` > TEMPO=$[(HORA*60)+MINUTO] > echo $TEMPO >> total_minutos > done > > +++++++++++++++++++++++++++++++++++++ > > Ele só processa até a linha 56, e dá o erro .... > > line 15: 09: valor muito grande para a base (error token is "09") > > so que na linha 56 do arquivo principal "tempo" tem o valor : 1:06:29 > e na 57 tem: 1:09:17 > > ou seja, aparentemente valores iguais aos outros .... > > Pode ser um erro básico, mas ja procurei bastante e não to entendendo o > que está errado. > > Muito obrigado a qualquer colega que possa dar uma ajuda; > > Emmanuel Abdala > Anápolis - GO > > > -- Abraços, Julio Cursos de Shell e Zenity? - Em SP ligue (11) 2125-4747; - Em DF ligue (61) 3223-3000; - No RJ ligue (21) 2561-0867; - Turmas fechadas em outras cidades ligue (21) 8112-9988. [As partes desta mensagem que não continham texto foram removidas]
