Subtrair horas, minutos, segundos e milisegundos em shell script [RESOLVIDO]

13. Re: Subtrair horas, minutos, segundos e milisegundos em shell script [RESOLVIDO]

Gabi
GabiS

(usa Ubuntu)

Enviado em 16/05/2017 - 23:45h

Ai ai nem sei mais como dizer obrigada rsrsrs

Copiei a alteração aqui, mas agora dá erro :( diz que:

date: data inválida “10:54:46:72”
date: data inválida “10:54:48:01”
date: data inválida “10:54:48:98”
date: data inválida “10:54:50:19”

O script está assim:

>RESULT.txt
TIMESTAMP="1-sp-C-timestamp.dat"
cat $TIMESTAMP >> tempo.txt
CP1=$(awk -F"[:,]" 'NR==1 {print $1":"$2":"$3"."$4}' tempo.txt)
DT01=$(date -d "${CP1}" +%s.%3N)
while read -r line;do
DT02=$(date -d "${line/,/.}" +%s.%3N)
echo "$(date -d "@$(bc <<< "10800+(${DT02}-${DT01})")" +%T:%2N)" >> RESULT.txt
done <tempo.txt

As linhas que começam com TIMESTAMP e cat é só para colocar meus dados de entrada, pode ser assim ne, mas dá esse erro ai de cima :/


  


14. Re: Subtrair horas, minutos, segundos e milisegundos em shell script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 17/05/2017 - 13:39h

GabiS escreveu:

Ai ai nem sei mais como dizer obrigada rsrsrs

Copiei a alteração aqui, mas agora dá erro :( diz que:

date: data inválida “10:54:46:72”
date: data inválida “10:54:48:01”
date: data inválida “10:54:48:98”
date: data inválida “10:54:50:19”

O script está assim:

>RESULT.txt
TIMESTAMP="1-sp-C-timestamp.dat"
cat $TIMESTAMP >> tempo.txt
CP1=$(awk -F"[:,]" 'NR==1 {print $1":"$2":"$3"."$4}' tempo.txt)
DT01=$(date -d "${CP1}" +%s.%3N)
while read -r line;do
DT02=$(date -d "${line/,/.}" +%s.%3N)
echo "$(date -d "@$(bc <<< "10800+(${DT02}-${DT01})")" +%T:%2N)" >> RESULT.txt
done <tempo.txt

As linhas que começam com TIMESTAMP e cat é só para colocar meus dados de entrada,
pode ser assim ne, mas dá esse erro ai de cima :/


Boa tarde Gabis.
Por um "acaso" os separadores foram alterados????
Esse erro ocorre pq o "date" NÃO aceita o formato 10:54:46:72.
O date espera os dados no formato 10:54:46.72
Poste o conteúdo de "1-sp-C-timestamp.dat", como código (botão </>) que é para manter a formatação.
________________________________________________________________________________
Para evitar os comandos:
TIMESTAMP="1-sp-C-timestamp.dat"
cat $TIMESTAMP >> tempo.txt

Vou alterar o script, tipo:
TIMESTAMP="1-sp-C-timestamp.dat"
CP1=$(awk -F"[:,]" 'NR==1 {print $1":"$2":"$3"."$4}' $TIMESTAMP)
.
.
.

________________________________________________________________________________

marcelo oliver



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts