小编典典

Shell命令对整数求和,每行一个?

all

我正在寻找一个可以接受(作为输入)多行文本的命令,每行包含一个整数,并输出这些整数的总和。

作为背景知识,我有一个包含时序测量的日志文件。通过对相关行的 grepping
和一些sed重新格式化,我可以列出该文件中的所有时间。我想算出总数。我可以将此中间输出通过管道传输到任何命令,以便进行最终总和。我过去一直使用expr,但除非它在
​​RPN 模式下运行,否则我认为它不会处理这个问题(即使这样也会很棘手)。

我怎样才能得到整数的总和?


阅读 124

收藏
2022-02-28

共1个答案

小编典典

有点 awk 应该这样做吗?

awk '{s+=$1} END {print s}' mydatafile

注意:如果您要添加超过 2^31 (2147483647) 的任何内容,某些版本的 awk
会出现一些奇怪的行为。有关更多背景信息,请参阅评论。一个建议是使用printf而不是print

awk '{s+=$1} END {printf "%.0f", s}' mydatafile
2022-02-28