![bash:将日志中的值设置为变量](https://linux22.com/image/185037/bash%EF%BC%9A%E5%B0%86%E6%97%A5%E5%BF%97%E4%B8%AD%E7%9A%84%E5%80%BC%E8%AE%BE%E7%BD%AE%E4%B8%BA%E5%8F%98%E9%87%8F.png)
我有一个由 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)