0

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

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

像这样返回日期04/16/12 20:44:19

我想通过以某种方式修改 awk 命令来将该日期转换为纪元时间,方法是将 $7 输入date -d $7 +%s

4

2 回答 2

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]) 
  }'
于 2012-04-23T13:11:40.930 回答
3

我认为awk这份工作有点重,cut也许有点轻:

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

但当然你也可以这样做awk

tail -1 MyFile | date -d "`awk -F, '{ print $7 }'`" +%s
于 2012-04-16T19:56:18.003 回答