为什么mktime在Awk中返回-1?

pyt*_*ver 2 unix shell awk mktime

我有以下数据的文件

# 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
Run Code Online (Sandbox Code Playgroud)

我想要像这样的输出

 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"
Run Code Online (Sandbox Code Playgroud)

我的脚本是:

awk -F',' '{print $1 "," , $2  , (mktime($2)-mktime($1))/86400 " Day",$3}' Filename
Run Code Online (Sandbox Code Playgroud)

mktime()回报-1.

Ed *_*ton 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
Run Code Online (Sandbox Code Playgroud)