Моя цель - преобразовать даты из моих журналов apache в формате «12/Ноябрь/2015: 23: 28: 22» в формат epoch. Можно ли это сделать с помощью команды date или мне нужно разобрать и извлечь информацию?Преобразование формата даты в формате apache в эпоху в bash
5
A
ответ
8
Кажется, моя команда date
хочет -
вместо /
между частями даты и разделяемыми пробелом от временной части. Поэтому я использовал sed
сделать преобразование типа так:
date -d "$(echo '12/Nov/2015:23:28:22' | sed -e 's,/,-,g' -e 's,:, ,')" +"%s"
+0
Спасибо, это отлично работает !! – user2704766
0
Вы можете использовать пакет dateutils
:
dateutils.strptime -i "%Y%m%dT%H%M%S" -f "%d.%m.%Y %H:%M:%S" "20170411T172238"
где -i
ваш входной формат и -f
выходной формат
Это довольно странный формат даты и времени, и ни одна из «дат», которую я попробовал, не могла его проанализировать, хотя ни одна из них не была на CentOS 7, но одна из них была датой GNU, что я бы предположил, что CentOS использует. – blm
Согласен. Хотя это формат моих журналов apache. Я как бы удивлен, дата не имеет способа предоставить дату с пользовательским форматом дата + "% d /% b /% Y:% H:% M:% S" -s "12/Nov/2015: 23: 28: 22 « – user2704766
Да, я знаю все, что нужно разбирать журналы со странным форматом, за которым вы застряли. :-) Я согласен, 'date' позволяет вам указать выходной формат, было бы неплохо, если бы вы могли указать формат ввода. @EricRenouf предлагает хорошее решение ниже, но для того, чтобы вытереть дату в формате 'date', понимает. – blm