我有一个变量,用于在 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 值,
答案1
如果你有 GNU awk ( gawk
),你可以使用它的mktime
功能 - 但是输入必须是空格分隔的日期规范形式为"YYYY MM DD HH MM SS [DST]"
。变量中的日期字段顺序正确,但您需要用空格替换分隔符:
$ gawk -v test="2018-12-18 18:36:55" 'BEGIN{print mktime(gensub(/[ :-]/," ","g",test))}'
1545176215
如果您的字符串用双引号引起来,那么您也需要将其删除:
$ gawk -v test='"2018-12-18 18:36:55"' 'BEGIN{print mktime(gensub(/[ ":-]/," ","g",test))}'
1545176215