我有一些shell脚本的多行输出,每行一个整数。像:
12
11
55
337
11
34
问题是,如何用shell命令总结这些数字?我尝试了sum
,但它并没有达到预期效果:
<some_shell_scripts> |sum
36373 2
ksh或bash中的任何简单解决方案?
答案 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)
答案 3 :(得分:1)
用sed替换所有'\ n'和'+',然后用bc
替换<some_shell_scripts> | sed ':a;N;$!ba;s/\n/+/g' | bc