我有一个包含数字列表的文件,每行一个数字。我想在文件中找到非零数字的平均值。
例如:文件是:
0.0
1.0
2.0
3.0
0.0
0.0
我希望答案是2.0,而不是1.0
我可以通过读取每一行,将其添加到总和中,如果值不等于零,增加一个计数,最后计算总和/计数来获得此结果。
使用其他命令是否有更简单的方法?
这个awk单行代码会进行过滤和平均计算:
awk '$0{s+=$0;c++}END{printf "%.1f\n",c?s/c:0}' file
它输出:
2.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句