bash:将日志中的值设置为变量

bash:将日志中的值设置为变量

我有一个由 240 个浮点数字组成的日志文件,格式如下:

5.4
5.1
5.2
5.4
5.4
4.9
5.0
5.2
5.5
5.3
5.6
5.4
5.1
5.3
5.3
5.1
5.2
..
4.8

在 bash 环境中访问此日志文件,我需要计算此数据的平均值(元素之和除以元素数量),然后将结果值存储为我将在同一 bash 中使用的新变量用于某些目的的脚本,例如我需要存储一个变量mean = 5.0 是否可以直接在一个bash脚本中执行此操作?

答案1

使用 awk:

awk '{sum+=$1}END{print sum/NR}' file.log

要将其存储在 bash 变量中,请使用命令替换:

variable=$(awk '{sum+=$1}END{print sum/NR}' file.log)

为了改变精度,您可以使用printf

variable=$(awk '{sum+=$1}END{printf "%.1f", sum/NR}' file.log)

相关内容