gpt4 book ai didi

linux - 查找时差的命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:17 24 4
gpt4 key购买 nike

我有一个日志,它被 1 个或多个进程同时转储。有时,由于 CPU 过载和上下文切换,记录到此文件将是延迟。我想找出每行之间的时间差并打印在每行之前?

日志示例:

07/18 16:20:29886564 Pid= 2998,Tid= 3036,  XXXXX.c:  335:XXXXX:### xxxxxxxxxxxxxxxxxx ### 
07/18 16:20:29886642 Pid= 2998,Tid= 3036, XXXXX.c: 484:XXXXX:### yyyyyyyyyyyyyyy()
07/18 16:20:29886880 Pid= 2998,Tid= 3036, XXXXX.c: 488:XXXXX:>>>yyyyyyyyyyyyy()
07/18 16:20:29887002 Pid= 2998,Tid= 3036, XXXXX.c: 494:XXXXX:>>>OK: zzzzzzzzzzzzzzz()

我想这可以通过“awk”来实现。但是,我很不擅长 linux 命令。有人可以帮忙吗?

最佳答案

您可以尝试以下 awk 命令。我已经对其进行了评论,以便您了解它是如何工作的:

awk '{
# split the time field
split($2,arr,":");

# convert hours and mins into seconds and compute total
curr=arr[3]+arr[2]*60+arr[1]*60*60;

# set previous value for the first line
if(prev == 0) prev=curr;

# print out the difference between current and previous totals
print curr-prev,$0;

# set previous to current
prev=curr;
}' file

关于linux - 查找时差的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17782415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com