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