首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于对一列数字求和的Bash命令

用于对一列数字求和的Bash命令
EN

Stack Overflow用户
提问于 2010-06-23 02:58:59
回答 9查看 323.6K关注 0票数 433

我想要一个bash命令,我可以通过管道输入它来对一列数字求和。我只想要一个快速的线性,它将做一些事情,基本上像这样:

代码语言:javascript
复制
cat FileWithColumnOfNumbers.txt | sum
EN

回答 9

Stack Overflow用户

发布于 2010-06-23 08:08:39

我喜欢你选择的答案。然而,它往往比awk慢,因为需要2个工具来完成这项工作。

代码语言:javascript
复制
$ wc -l file
49999998 file

$ time paste -sd+ file | bc
1448700364

real    1m36.960s
user    1m24.515s
sys     0m1.772s

$ time awk '{s+=$1}END{print s}' file
1448700364

real    0m45.476s
user    0m40.756s
sys     0m0.287s
票数 207
EN

Stack Overflow用户

发布于 2014-03-25 17:26:41

以下命令将添加所有行( awk输出的第一个字段)

代码语言:javascript
复制
awk '{s+=$1} END {print s}' filename
票数 75
EN

Stack Overflow用户

发布于 2010-06-23 03:02:11

两行算吗?

代码语言:javascript
复制
awk '{ sum += $1; }
     END { print sum; }' "$@"

然后你可以不用多余的‘cat’来使用它:

代码语言:javascript
复制
sum < FileWithColumnOfNumbers.txt
sum   FileWithColumnOfNumbers.txt

FWIW:在MacOS X上,你可以使用一行代码:

代码语言:javascript
复制
awk '{ sum += $1; } END { print sum; }' "$@"
票数 60
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3096259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档