加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 00:51:42 所属栏目:Linux 来源:网络整理
导读:我有一个以逗号分隔的文件,第一列是格式为01/31/2010的日期 我想改成纪元时间,这样文件“file.csv”: 01/30/2010,1,"hi" 01/31/2010,3,"bye" 将更改为“output.csv”: 1264809600,"hi" 1264896000,"bye" 我知道命令行日期-d“01/30/2010”%s可以工作,但只
我有一个以逗号分隔的文件,第一列是格式为01/31/2010的日期
我想改成纪元时间,这样文件“file.csv”:

01/30/2010,1,"hi"
 01/31/2010,3,"bye"

将更改为“output.csv”:

1264809600,"hi"
 1264896000,"bye"

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

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

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

解决方法

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

或者,调用日期:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读