gpt4 book ai didi

awk - 如何用 AWK 减去毫秒 - 脚本

转载 作者:行者123 更新时间:2023-12-05 00:01:47 27 4
gpt4 key购买 nike

我正在尝试创建一个 awk 脚本来减去连接的 2 条记录之间的毫秒数,例如:

通过命令行,我可能会这样做:

输入:

06:20:00.120
06:20:00.361
06:20:15.205
06:20:15.431
06:20:35.073
06:20:36.190
06:20:59.604
06:21:00.514
06:21:25.145
06:21:26.125

命令:
awk '{ if ( ( NR % 2 ) == 0 ) { printf("%s\n",$0) } else { printf("%s ",$0) } }' input 

我会得到这个:
06:20:00.120 06:20:00.361
06:20:15.205 06:20:15.431
06:20:35.073 06:20:36.190
06:20:59.604 06:21:00.514
06:21:25.145 06:21:26.125

正确减去毫秒:
awk '{ if ( ( NR % 2 ) == 0 ) { printf("%s\n",$0) } else { printf("%s ",$0) } }' input| awk -F':| ' '{print $3, $6}'

并避免负数:
awk '{if ($2<$1) sub(/00/, "60",$2); print $0}'
awk '{$3=($2-$1); print $3}'

目标是得到这个:
Call 1 0.241 ms
Call 2 0.226 ms
Call 3 1.117 ms
Call 4 0.91 ms
Call 5 0.98 ms

最后和平均水平。

我可能会执行此操作,但可以按命令执行。我不知道如何将其放入脚本中。

请需要帮助。

最佳答案

使用 awk :

awk '
BEGIN { cmd = "date +%s.%N -d " }
NR%2 {
cmd $0 | getline var1;
next
}
{
cmd $0 | getline var2;
var3 = var2 - var1;
print "Call " ++i, var3 " ms"
}
' file
Call 1 0.241 ms
Call 2 0.226 ms
Call 3 1.117 ms
Call 4 0.91 ms
Call 5 0.98 ms

关于awk - 如何用 AWK 减去毫秒 - 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8973486/

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