【发布时间】:2012-04-28 03:58:34
【问题描述】:
我有以下从文件中返回日期的命令
tail -1 MyFile | awk -F ',' '{print $7}'
像这样返回日期04/16/12 20:44:19
我想通过以某种方式将 $7 输入 date -d $7 +%s 来修改 awk 命令,从而将该日期转换为纪元时间
【问题讨论】:
我有以下从文件中返回日期的命令
tail -1 MyFile | awk -F ',' '{print $7}'
像这样返回日期04/16/12 20:44:19
我想通过以某种方式将 $7 输入 date -d $7 +%s 来修改 awk 命令,从而将该日期转换为纪元时间
【问题讨论】:
我觉得awk这个工作有点重,cut可能会轻一点:
tail -1 MyFile | date -d "`cut -d, -f7`" +%s
当然你也可以使用awk 来做到这一点:
tail -1 MyFile | date -d "`awk -F, '{ print $7 }'`" +%s
【讨论】:
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])
}'
【讨论】: