Bash:来自stdout的整数值的总和

时间:2013-06-03 08:44:46

标签: bash integer sum cut

有办法做到这一点吗?

我有一组包含整数字段的数据:

cat myinput
14 bytes long.
36 bytes long.
32 bytes long.

我想在这些文本行中添加整数值以给出总和。因此,在上面的例子的情况下,整数值的总和是82.我曾想过使用类似的东西:

cat myinput | cut -f1 -d' ' | <...add code here to add the filtered integers...> 

似乎我必须以某种方式表达,但我无法弄清楚如何。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:5)

我们用awk做吧?

$ awk 'a+=$1; END{print a}' file
14 bytes long.
36 bytes long.
32 bytes long.
82

使用bash:

f=0
while read i
do
  n=$(echo $i | cut -d' ' -f1)
  tot=$(($n + $tot))
done < file

$ echo $tot
82