我正在寻找一个可以接受(作为输入)多行文本的命令,每行包含一个整数,并输出这些整数的总和。
作为背景知识,我有一个包含时序测量的日志文件。通过对相关行的 grepping 和一些sed重新格式化,我可以列出该文件中的所有时间。我想算出总数。我可以将此中间输出通过管道传输到任何命令,以便进行最终总和。我过去一直使用expr,但除非它在 RPN 模式下运行,否则我认为它不会处理这个问题(即使这样也会很棘手)。
sed
expr
我怎样才能得到整数的总和?
有点 awk 应该这样做吗?
awk '{s+=$1} END {print s}' mydatafile
注意:如果您要添加超过 2^31 (2147483647) 的任何内容,某些版本的 awk 会出现一些奇怪的行为。有关更多背景信息,请参阅评论。一个建议是使用printf而不是print:
printf
print
awk '{s+=$1} END {printf "%.0f", s}' mydatafile