У меня есть переменная в который хранилища DateTime в awk
test=$(f["DateTime"])
print "Printing Test variable:",test
Вывод:
Printing Test variable:,"2018-12-18 18:36:55"
Я хочу преобразовать значение в тесте к секундам
Мог кто-либо говорить мне, как сделать это в awk
Используя mktime () дает-1 как вывод
print mktime(gensub(/[ :-]/," ","g",test))
Мои Входные данные (файл CSV) похожи ниже
DateTime,Dealer,Some Value,State,CallEndTime,Some Value,TotalDuration,,..
"2019-01-07 11:35:42","Car","fab","foo",,"bar","100","boo",..
Я получил значение DateTime от этого,
Если у Вас есть GNU awk (gawk
) можно использовать mktime
функция - однако вход должна быть разделенным пробелом datespec формы "YYYY MM DD HH MM SS [DST]"
. Поля даты в Вашей переменной находятся в правильном порядке, но необходимо будет заменить разделители пробелами:
$ gawk -v test="2018-12-18 18:36:55" 'BEGIN{print mktime(gensub(/[ :-]/," ","g",test))}'
1545176215
Посмотрите, например, Функции Времени в Руководстве пользователя Awk GNU
Если Ваша строка будет включена в двойные кавычки, то необходимо будет удалить их также:
$ gawk -v test='"2018-12-18 18:36:55"' 'BEGIN{print mktime(gensub(/[ ":-]/," ","g",test))}'
1545176215