Time 用awk计算时间

Time 用awk计算时间,time,awk,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 编码| 2010-04-20 12:52 | 2010-04-20 14:11 文件| 2

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

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 编码| 2010-04-20 12:52 | 2010-04-20 14:11 文件| 2010-04-20 22:56 | 2010-04-21 01:13 编码| 2010-04-21 09:51 | 2010-04-21 10:58 编码| 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 2010-04-20编码69 2010-04-21文件137 2010-04-21编码137
这可以用awk完成吗?

这可以用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