Shell command to sum integers, one per line?

Let say I want to add X numbers from a file :

For Example : file num.txt contain 4 numbers, now we want to add (sum) of all number from that file.
[root@amit ~]# cat num.txt
637
39
1180
2788

Solution 1 :
[root@amit ~]# sum=0; while read num ; do sum=$(($sum + $num)); done < num.txt ; echo $sum
4644

Solution 2 : 
[root@amit ~]# awk '{s+=$1} END {print s}' num.txt
4644

Solution 3 :
[root@amit ~]#  perl -nle '$sum += $_ } END { print $sum' num.txt
4644

Solution 4 : same as Solution 2 (used "sum" instead of "s")
[root@amit ~]# awk '{ sum += $1 } END { print sum }' num.txt
4644

I like how a simple script like this could be modified to add up a second column of data just by changing the $1 to $2

Solution 5 : 
[root@amit ~]# dc -f num.txt -e '[+z1<r]srz1<rp'
4644

This is really very helpful to sum (add) all number from a file by using AWK, DC, PERL, and SUM  command.



 
Top
Maintained By Amit Maheshwari