UNIX Shell Рассчитать разницу часов между двумя временными метками - PullRequest
0 голосов
/ 03 мая 2018

У меня есть две метки времени в форматах:

Метка времени 1 (переменная - RunStartDate): Thu May 3 14:12:54 CDT 2018
Отметка времени 2 (переменная - RunEndDate): Thu May 3 18:11:46 CDT 2018

Мне нужна разница в количестве часов между этими двумя временными метками в оболочке UNIX. (Т.е. RunEndDate - RunStartDate в часах)

Пожалуйста, помогите, я новичок в UNIX, и он выдает мне ошибки, когда я просто пытаюсь вычесть их.

1 Ответ

0 голосов
/ 03 мая 2018

У вас есть несколько вариантов, таких как вызов Perl или Python и использование библиотеки даты / времени, чтобы сделать математику за вас. Другой вариант - использовать программу date для преобразования дат в секунды, вычитания значений и последующего преобразования в часы. К сожалению, вы не можете выполнять математические операции с плавающей точкой в ​​Bash, поэтому нам придется обратиться к вспомогательной программе, чтобы сделать это тоже.

START=$(date -d "$RunStartDate" +"%s")
END=$(date -d "$RunEndDate" +"%s")
HOURS=$(bc -l <<< "($END - $START) / 3600")

Обратите внимание, что это будет работать только в системах GNU (например, Linux).

...