2010-04-20 5 views
0

j'ai un fichier, qui ressemble à:calcul du temps avec 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 

Quelle est la meilleure façon - je pense à awk - pour effectuer des calculs de temps. En conséquence, je pense:

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

cela peut être fait avec awk?

Répondre

1

Can this be done with awk?

je ne sais pas comment vous obtenez ces chiffres 69, 137, mais vous pouvez utiliser le mktime de gawk (et d'autres comme 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 

la ne parvenez pas à résoudre vraiment votre problème mais juste une illustration.