AWK约会时代

时间:2012-04-16 19:46:30

标签: linux bash unix awk

我有以下命令从文件中返回日期

tail -1 MyFile | awk -F ',' '{print $7}'

返回日期,如04/16/12 20:44:19

我想通过将{7}投入date -d $7 +%s

以某种方式修改awk命令,将该日期转换为纪元时间

2 个答案:

答案 0 :(得分:3)

我认为awk对于这项工作来说有点沉重,cut可能会轻一点:

tail -1 MyFile | date -d "`cut -d, -f7`" +%s

但当然你也可以使用awk

tail -1 MyFile | date -d "`awk -F, '{ print $7 }'`" +%s

答案 1 :(得分:3)

GNU awk 内置时间函数:

tail -1 infile | awk -F, '{
  split($7, t, /[/: ]+/)
  t[3] = t[3] > 69 ? 19 t[3] : 20 t[3]
  print mktime(t[3]" "t[1]" "t[2]" "t[4]" "t[5]" "t[6]) 
  }'