Linux shell 总和列

标签 linux perl shell sum

如何求和(使用 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/

相关文章:

linux - dmesg -T 导致时间戳不一致

mysql 子查询或连接

c-linux-debian 多线程程序中对函数的 undefined reference

android - protobyname 错误的任何解决方法?

perl - 为什么这个 xmlns 属性会打乱我的 xpath 查询?

java - 如何以编程方式在启动它的同一脚本中终止正在运行的进程?

perl - 是否有 PDL API 的符号实现?

linux - 如何从 Shell 脚本中停止 CACHE 实例

shell - 使用标准输出流水线中的参数两次

shell - 用空格替换双引号