如何在Bash中对文件中的变量求和

Ahm*_*buğ 3 bash arithmetic

我需要逐行对文件中的数字求和。

文件:

1.0
0.46
0.67
Run Code Online (Sandbox Code Playgroud)

我想求和,然后除以 3。

我目前有:

while IFS= read -r var
do
   x=$(($var + $x)) | bc -l
done < "file.txt"
echo "$x / 3"
Run Code Online (Sandbox Code Playgroud)

我的错误:

-bash: 1.0 + 0: syntax error: invalid arithmetic operator (error token is ".0 + 0")
Run Code Online (Sandbox Code Playgroud)

jes*_*e_b 7

Bash/shell 算法无法处理浮点算法。您可以使用awk以下方法完成您的任务:

awk '{sum= sum+$1} END {print sum/3}' file
Run Code Online (Sandbox Code Playgroud)

这将通读您的文件并将每一行添加到sum. 完成读取文件后,它将打印sum除以 3。