首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数字数据的平均

数字数据的平均
EN

Stack Overflow用户
提问于 2016-03-16 18:41:55
回答 2查看 32关注 0票数 0

我有一个日志文件组成的标题和数字数据组成的相关字符串的数量

代码语言:javascript
运行
复制
This is the benchmarks ns/day for wsp systems
21.473
21.483
21.425
21.548
21.588
21.587
21.522
21.547
21.549
21.487

在日志中,我需要自动添加由AVERAGE =组成的最后一行,并从2-11个字符串上的数字计算平均值。将非常感谢优雅的bash脚本,它将打开日志,循环字符串,并在最后一个字符串中添加平均值!

谢谢!

詹姆斯

EN

回答 2

Stack Overflow用户

发布于 2016-03-16 18:50:21

这个awk一行程序应该可以为您工作:

代码语言:javascript
运行
复制
awk '7;NR>1{t+=$0}END{printf "EVERAGE=%.3f\n",t/(NR-1)}' file

它的用途:

如果行数大于1,则读取一行并打印,如果行数大于1,则将值求和,然后保存到

  • 打印文件中的最后一行,计算平均值,并以与其他数字相同的格式打印。(printf函数)

如果你在你的示例文件上测试它,它会给出:

代码语言:javascript
运行
复制
kent$  awk '7;NR>1{t+=$0}END{printf "AVERAGE=%.3f\n",t/(NR-1)}' f
this is the benchmarks ns/day for wsp systems
21.473
21.483
21.425
21.548
21.588
21.587
21.522
21.547
21.549
21.487
AVERAGE=21.521
票数 0
EN

Stack Overflow用户

发布于 2016-03-16 18:51:51

为此,我将使用awk。

代码语言:javascript
运行
复制
awk '{sum+=$1; print} END{print "AVERAGE=" sum/(NR-1)}' logfile

sum+=$1将把每个字符串的第一个元素加到一个变量上

END语句将根据行数(或awk词汇表中的‘NR’)求平均值

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36033306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档