从同一进程的两个文件中减去日期

从同一进程的两个文件中减去日期

我已经启动了 50 个进程,在一个文件“说 start_time”中,我存储了进程启动的时间,在另一个文件“说 end_time”中,我存储了进程完成的时间。文件如下 -

Start time - 
Start time for Process A : 15/09/26 21:02:13
Start time for Process B : 15/09/26 20:06:14
Start time for Process C : 15/09/26 13:20:52
Start time for Process D : 15/09/26 11:23:46

End time file 
End time for Process B : 15/09/26 21:13:38
End time for Process D : 15/09/26 12:31:29
End time for Process A : 15/09/26 22:06:11
End time for Process C : 15/09/26 12:17:10

现在我想计算每个进程的执行时间,例如进程 A:10 分钟进程 B:5 分钟等。

答案1

我同意CAS' 上面的评论涉及正确的日志文件日期,以避免将来重新格式化,如下所示

awk '
/:/{
    d=$(NF-1)
    gsub("/","",d)
    "date +%s -d \""d" "$NF"\"" | getline m
    if(/Start/)
        D[$5]=-m
    else
        D[$5]+=m
END{
    for(i in D)
        print "Process", i, "time :", D[i], "sec"
}' file

要保存进程的结束顺序,只需将脚本的结尾更改为:

…       D[$5]=-m
    else
        print "Process", $5, "time :", D[$5] + m
}' file

相关内容