gpt4 book ai didi

regex - 使用awk计算并打印正则表达式得到的值的平均值

转载 作者:行者123 更新时间:2023-12-01 02:10:23 25 4
gpt4 key购买 nike

我有一个名为 bt.B.1.log 的文件,如下所示:

.
.
.
Time in seconds = 260.37
.
.
.
Time in seconds = 260.04
.
.
.

以秒为单位的 40 条时间记录(点代表无用的线),依此类推。
我应该从文件中提取这些时间并计算/打印平均值到 .dat 文件 (t1avg.dat) 而不使用中间文件。
我已经能够使用中间文件做到这一点:
awk '/Time in seconds/ {print $5}' bt.B.1.log > t1.dat
awk '{sum+=$0} END {print sum/NR}' t1.dat > t1avg.dat

因此,该方法是以某种方式将出现在第一个 awk 命令中的正则表达式作为第二个命令中的参数传递,告诉 awk 计算正则表达式结果行的总和,所有这些都从单个文件(bt.B .1.log)并写入 t1avg.dat(抑制 t1.dat 的创建)。到目前为止,我已经达到了以下代码,它给出了错误的输出:
awk '{sum+=/Time in seconds/$5; print sum/NR}' bt.B.1.log

有任何想法吗?

最佳答案

awk '/Time in seconds/ {s+=$5;c++} END{print s/c}' bt.B.1.log >t1avg.dat
s是时间和 c 的总和是计数。因此, s/c是平均值。

关于regex - 使用awk计算并打印正则表达式得到的值的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29902458/

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