使用Linux中的AWK将日期转换为纪元时间

era*_*ran 5 unix linux excel awk

我有一个以逗号分隔的文件,第一列是格式为01/31/2010的日期,我想将其更改为纪元时间,以便文件"file.csv":

 01/30/2010,1,"hi"
 01/31/2010,3,"bye"
Run Code Online (Sandbox Code Playgroud)

将更改为"output.csv":

 1264809600,1,"hi"
 1264896000,3,"bye"
Run Code Online (Sandbox Code Playgroud)

我知道命令行日期-d"01/30/2010"+%s可以工作,但只能在一个日期,我需要将它提供给一个表,所以,有没有办法使用awk与一些功能():

cat file.csv | awk -F, 'print func($1)","$2","$3}'
Run Code Online (Sandbox Code Playgroud)

因为我真的不在乎我是怎么做的,或者,当字符串是mm/dd/yyyy时,如何将excel中的日期更改为纪元...

nin*_*alj 7

TZ=PST awk -F, '{split($1,date,"/");
                 $1=mktime(date[3] " " date[1] " " date[2] " " "00 00 00");
                 print}'
Run Code Online (Sandbox Code Playgroud)

或者,调用date:

TZ=PST awk -F, '{ OFS = FS;
                  command="date -d" $1 " +%s";
                  command | getline $1;
                  close(command);
                  print}'
Run Code Online (Sandbox Code Playgroud)