如何求和(使用 Linux shell)列中的数字?如果可能的话,我不想使用像 awk 或 perl 这样强大的工具。我想要类似 giveMeNumber | 的东西总和
最佳答案
由于您没有提供文件示例,我将展示简单的(第 1 列)方法,使用 Unix 的计算器 bc
并使用 tr
将换行符转换为“+” > 命令 - 你需要在最后一个额外的 0,因为最后一个数字后的换行符会在最后创建一个额外的“+”:
$ cat a
1
2
3
$ cat a | tr "\012" "+" ; echo "0"
1+2+3+0
$ (cat a | tr "\012" "+" ; echo "0") |bc
6
但是,我不太确定您为什么需要避免使用 Perl,因为它很容易作为一个单行代码来实现:
> perl5.8 -ae '{map {$sum+=$_} <>; print "$sum\n"}' a
6
关于Linux shell 总和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2897514/