我有以下数据的文件
# date format in file is (YYYY MM DD HH MM SS)
file_create_date file_execute_date file_name
"2017 10 10 12 24 30" , "2017 10 11 09 23 00" , LTE--cNum--T201710110923--W101114450--CHGLSMR01LEMS1--sam--4.0.csv.gz
我想要这样的输出
file_create_date file_execute_date difference file_name
"2017 10 10 12 20 30" , "2017 10 11 13 31 59" , "1 Day 01:11:29, "LTE--cNum--T201710110923--W101114450--CHGLSMR01LEMS1--sam--4.0.csv.gz"
我的脚本是:
awk -F',' '{print $1 "," , $2 , (mktime($2)-mktime($1))/86400 " Day",$3}' Filename
但mktime()
会返回-1
。
答案 0 :(得分:6)
您在mktime传递了一个包含双引号和空白字符的字符串。删除那些。
$ echo '"2017 10 10 12 24 30" , "2017 10 11 09 23 00"'
"2017 10 10 12 24 30" , "2017 10 11 09 23 00"
$ echo '"2017 10 10 12 24 30" , "2017 10 11 09 23 00"' | awk -F',' '{print mktime($1)}'
-1
$ echo '"2017 10 10 12 24 30" , "2017 10 11 09 23 00"' | awk -F',' '{gsub(/\s*"\s*/,""); print mktime($1)}'
1507656270