2013-11-12 3 views
0

У меня есть 2 переменных.Пересчитать временную разницу во времени

GMDCOM переменная хранит время даты в ниже формате

Tue Oct 1 13:37:38 2013 
Tue Oct 1 13:32:40 2013 
Tue Oct 1 13:37:53 2013 

GMDRRS переменная хранит время даты в указанном ниже формате

Tue Oct 1 13:35:33 2013 
Tue Oct 1 13:34:33 2013 
Tue Oct 1 13:32:33 2013 

Я хочу, чтобы вычислить разницу DATETIME например вт 1 октября 13 : 37: 38 2013 - Вт Окт 1 13:35:33 2013 в чч: мм: ss формат и сохранить его в другой переменной. Я не хочу использовать PERL, AWK или SED. Вместо этого я хочу использовать обычные команды BASH Shell для его достижения. Пожалуйста помоги.

+0

@fedorqui Оу, я не заметил, что дублируют с той же ОП. Это должно быть обязательно закрыто. – jkshah

ответ

1

Попробуйте следующие

#!/bin/bash 

GMDCOM='Tue Oct 1 13:37:38 2013' 
GMDRRS='Tue Oct 1 13:35:33 2013' 

d1=$(date -d "$GMDCOM" +%s) 
d2=$(date -d "$GMDRRS" +%s) 
dd=$(($d1-$d2)) 

ss=$(($dd%60)) 
mm=$((($dd/60)%60)) 
hh=$((($dd/3600)%60)) 

printf "%02d:%02d:%02d\n" "$hh" "$mm" "$ss" 
+0

Когда я пытаюсь запустить оболочку, она говорит date: незаконный вариант - d – Tanmoy

+0

Я не могу запустить вышеуказанный код. Когда я пытаюсь запустить оболочку, она говорит date: незаконный вариант - d – Tanmoy

+0

@Tanmoy вы можете набрать 'man date' и посмотреть, появляется ли опция' -d'. Вы уверены, что используете это в bash? – jkshah

Смежные вопросы