我有一个格式如下的文件:
method1|duration=300s
method2|duration=300s
method1|duration=500s
method1|duration=300s
method1|duration=700s
method3|duration=300s
...
如何使用 Linux Shell 获取 method1 的平均持续时间? 谢谢。
最佳答案
使用这个:
awk -F'[=s]' '/method1/{t+=$2;c++}END{printf "%ss\n",t/c}' file
-F[=s]
将字段分隔符设置为 =
或 s
以便于提取它们之间的数值。 t+=$2
会将数值添加到总计 t
中。 c++
将计算包含术语 method1
的行数。在处理完最后一行输入 END
后,我们打印总的 t
除以 c
,即包含 method1 的行数
。
注意:变量 c
和 t
的初始化不是必需的,因为 awk 在它们第一次使用时用 0
初始化它们。
关于linux - 使用 Linux Shell 的解析器文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31026361/