我需要逐行对文件中的数字求和。
文件:
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)
Bash/shell 算法无法处理浮点算法。您可以使用awk
以下方法完成您的任务:
awk '{sum= sum+$1} END {print sum/3}' file
Run Code Online (Sandbox Code Playgroud)
这将通读您的文件并将每一行添加到sum
. 完成读取文件后,它将打印sum
除以 3。