在Shell脚本中添加一些数字?

时间:2012-05-15 21:20:47

标签: shell

如何获得以下数字的总和?在加入之前它们会成倍增加。

Input File (count.txt)
2*4
2*1
3*1
3*1
2*1
2*1

Command I am using:
( echo 0 ; sed 's/$/ +/' count.txt; echo p ) | dc.

我得到的总和是343,这是不正确的。我期待总和为20。

2*4
2*1
3*1
3*1
2*1
2*1

总和:20(乘法,然后每行总和)

有什么想法吗?

谢谢, 拉吉

3 个答案:

答案 0 :(得分:1)

这应该做的工作:

cat count.txt | tr \\n \+ | sed 's/$/\n/' | bc

确保文件末尾没有新行,否则你必须修改sed表达式。

答案 1 :(得分:1)

这也可以完成这项工作:

awk -F'*' '{i+=$1*$2} END{print i}' count.txt

答案 2 :(得分:0)

cat count | while read line; do echo $(($line)); done | awk '{i+=$1} END {print i}'

这是我能提出的最佳解决方案,希望有所帮助。