Как я могу найти различие между двумя датами, которые находятся в формате
date +"%H-%M-%d-%m-%Y"
И также я хочу различие в часах. Как я могу найти это использование единственной команды.
Если даты находятся в файле по одной на строку, например, скажем:
16-49-24-02-2016
16-49-25-02-2016
Тогда вы можете использовать awk
:
awk -F- 'NR==1 {
then = mktime(sprintf("%s %s %s %s %s 00", $5, $4, $3, $1, $2))
}
NR==2 {
now = mktime(sprintf("%s %s %s %s %s 00", $5, $4, $3, $1, $2));
printf "%s\n", (now - then)/3600
}' input.txt
] функция ожидает время в YYYY MM DD HH MM SS
, поэтому мы разбиваем данную временную метку и конвертируем ее в этот формат (используя 00
для секунд). Разница между временными метками заключается в секундах, поэтому мы делим на 3600, чтобы получить часы.