我想要一个bash命令,我可以通过管道输入它来对一列数字求和。我只想要一个快速的线性,它将做一些事情,基本上像这样:
cat FileWithColumnOfNumbers.txt | sum
发布于 2010-06-23 08:08:39
我喜欢你选择的答案。然而,它往往比awk慢,因为需要2个工具来完成这项工作。
$ 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
发布于 2014-03-25 17:26:41
以下命令将添加所有行( awk输出的第一个字段)
awk '{s+=$1} END {print s}' filename
发布于 2010-06-23 03:02:11
两行算吗?
awk '{ sum += $1; }
END { print sum; }' "$@"
然后你可以不用多余的‘cat’来使用它:
sum < FileWithColumnOfNumbers.txt
sum FileWithColumnOfNumbers.txt
FWIW:在MacOS X上,你可以使用一行代码:
awk '{ sum += $1; } END { print sum; }' "$@"
https://stackoverflow.com/questions/3096259
复制相似问题