Согласно этот ответ date
не имеет возможности указать формат ввода.Поэтому вы должны преобразовать свои данные в формат, который принимается date
.Команда sed
в следующей команде преобразует 201812051147
в 2018-12-05 11:47
.
Чтобы преобразовать дату в секунды, используйте выходной формат +%s
.
$ input=201812051147
$ date -d "$(sed -E 's/(....)(..)(..)(..)(..)/\1-\2-\3 \4:\5/' <<< "$input")" +%s
1544010420
Обратите внимание, что вывод зависит от часового пояса вашей системы.Вы можете изменить часовой пояс, установив переменную среды TZ
.
Кстати: в этом случае вам не нужно экспортировать переменную.Кроме того, для именования переменных в bash принято использовать строчные буквы.По договоренности только специальные переменные пишутся во всех заглавных буквах.Использование имен переменных, написанных заглавными буквами, может привести к конфликту имен с этими переменными.