tags:

views:

92

answers:

1

I've got a file, which looks like:

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

What's the best way - I'm thinking of awk - to do time calculations. As result I expect:

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

Can this be done with awk?

+1  A: 

Can this be done with awk?

i don't know how you get those numbers 69, 137 but you can use gawk's mktime (and others like strftime etc)

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

the above does not really solve your problem but just an illustration.

ghostdog74