I have text file with entries like 123 112 3333 44 2
How to add these numbers and get the sum of these.
Example:
$ cat numbers.txt
123 112 3333 44 2
$ SUM=0; for i in `cat numbers.txt`; do SUM=$(($SUM + $i)); done; echo $SUM
3614
See also: Bash Programming Introduction, section on arithmetic evaluation
Another way would be to use bc
, an arbitrary precision calculator language:
$ echo '123 112 3333 44 2' | tr ' ' '\n' | paste -sd+ | bc
3614
Paste usually works on lines, so we need tr
.
A Bash-only (no cat
) variation on MYYN's answer.
sum=0; for i in $(<number_file); do ((sum += i)); done; echo $sum
Also, note the simpler arithmetic statement.
just one awk command does it. It doesn't break when you have decimals to add as well.
awk '{for(i=1;i<=NF;i++)s+=$i}END{print s}' file
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With