使用 awk 提取值然后执行计算

使用 awk 提取值然后执行计算

我的输出如下所示:

{tid=4, total=3, column.id=[5.0]}  
{tid=2, total=1, column.id=[5.0]}
{tid=5, total=8, column.id=[5.0]}
{tid=8, total=6, column.id=[5.0]}
elapsed time: 10 milliseconds
current time: Thu Sep 15 16:15:30

这组输出以不同的经过时间重复多次。我想提取所有出现的代表经过时间的整数,然后找到平均经过时间。我相信我可以使用 awk 获取经过的时间,但我不确定这里的语法是否正确。

答案1

假设它总是以毫秒为单位,这应该可以工作。

awk '/^elapsed time:/ {T+=$3;C++}; END {print T/C}' test.txt 

/^elapsed time:/找到与所需模式匹配的行

{T+=$3;C++};将第三列添加到Tup 中并计算我们执行了多少次C

END {print T/C}打印出我们的平均值。

相关内容