用awk计算时间

时间:2010-04-20 11:09:05

标签: time awk

我有一个文件,看起来像:

Coding       |2010-04-20 12:52|2010-04-20 14:11
Documentation|2010-04-20 22:56|2010-04-21 01:13
Coding       |2010-04-21 09:51|2010-04-21 10:58
Coding       |2010-04-21 13:11|2010-04-21 14:21

什么是最好的方式 - 我在考虑awk - 做时间计算。 结果我期待:

2010-04-20 Coding         69
2010-04-21 Documentation 137
2010-04-21 Coding        137 

这可以用awk完成吗?

1 个答案:

答案 0 :(得分:1)

Can this be done with awk?

我不知道你怎么得到这些数字69,137,但你可以使用gawk的mktime(以及其他像strftime等)

awk -F"|" '
{
  gsub(/[-:]/," ",$2)
  gsub(/[-:]/," ",$3)
  m=split($2,s2," ")
  n=split($3,s3," ")
  t1=mktime(s2[1]" "s2[2]" "s2[3]" "s2[4]" "s2[5]" 0")
  t2=mktime(s3[1]" "s3[2]" "s3[3]" "s3[4]" "s3[5]" 0")
  print t2-t1
}' file

以上并没有真正解决您的问题,只是一个例子。