如何在Bash中计算平均值并保留7位小数?
解决awk输出平均值保留7位小数的问题
没问题,这个需求很容易搞定!你之前的命令用print输出时,awk会采用默认的数值输出精度(通常是3位小数),要保留7位的话,只需要改用printf来指定精确的格式即可。
修改后的命令如下:
awk '{s+=$1} END {printf "Average: %.7f\n", s/NR}' file
关键说明:
printf "%.7f\n":这里的%.7f是格式化字符串,%f表示以浮点数形式输出,.7指定保留7位小数;\n用来换行,保证输出格式整洁。s/NR:和你原来的逻辑一样,s是所有第一列数值的总和,NR是文件的总行数(也就是数值的个数),两者相除得到平均值。
举个例子,如果你的file内容是:
1.2345678 2.3456789 3.4567890
运行修改后的命令会输出:
Average: 2.3456786
另外,如果你的数值不在第一列,只需要把$1改成对应的列号(比如第二列就用$2)就行啦。
内容的提问来源于stack exchange,提问作者user9808032
相关产品推荐
相关产品推荐

