如何总结bash shell中的指数值?

时间:2014-03-20 16:18:21

标签: perl bash

这是示例值

2.31312e+06
4.34234234e+07
4.578362e+06
3.213124124e+06

我该如何添加它们?

3 个答案:

答案 0 :(得分:1)

您可以使用awk。以下假设文件中的每个数字都在一个单独的行上:

awk '{a+=$0}END{print a}' filename

为了您的输入,它会产生:

5.3528e+07

如果文件中的所有数字都在同一行,请说:

awk '{for(i=1;i<=NF;++i) a+=$i}END{print a}' filename

答案 1 :(得分:1)

这是一个Perl版本:

#!/usr/bin/perl

use warnings;
use strict;

my $sum = 0;

while (<DATA>) {
    $sum += $_;
}

print "$sum\n";

__DATA__
2313120
43423423.4
4578362
3213124.124

如果您喜欢这种风格,这是单行版本:

perl -ne ' $s += $_; END { print "$s\n" } ' datafile

答案 2 :(得分:1)

数字是args:

perl -le'$s += $_ for @ARGV; END { print $s }'

STDIN上的数字或命名为参数的文件(每行一个):

perl -nle'$s += $_; END { print $s }'

如果您希望结果采用指数表示法,请使用printf '%e\n', $s代替print $s