AWKdate到时代

我有以下命令从文件返回一个date

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

像这样返回date04/16/12 20:44:1904/16/12 20:44:19

我想通过修改awk命令将date转换为纪元时间,将$ 7joindate -d $7 +%s

Solutions Collecting From Web of "AWKdate到时代"

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

 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]) }'