如何总结数字输出的多行?

时间:2013-12-06 16:33:52

标签: bash ksh

我有一些shell脚本的多行输出,每行一个整数。像:

12
11
55
337
11
34

问题是,如何用shell命令总结这些数字?我尝试了sum,但它并没有达到预期效果:

<some_shell_scripts> |sum
36373     2 

ksh或bash中的任何简单解决方案?

4 个答案:

答案 0 :(得分:4)

使用awk,您可以使用以下内容进行制作:

$ awk '{count+=$1} END{print count}' file
460

使用bash

sum=0
while read number
do
  sum=$(($sum + $number))
done < file
echo $sum

测试:

$ sum=0; while read number; do sum=$(($sum + $number)); done < file
$ echo $sum
460

答案 1 :(得分:2)

管道到awk:

<some_shell_scripts> | awk 'NF{sum+=$1} END {print sum}'

答案 2 :(得分:1)

使用bc进行命令行计算,awk过度。

例如:

echo "23 + 23 + 23" | bc
69

答案 3 :(得分:1)

用sed替换所有'\ n'和'+',然后用bc

替换
<some_shell_scripts> | sed ':a;N;$!ba;s/\n/+/g' | bc