这是示例值
2.31312e+06
4.34234234e+07
4.578362e+06
3.213124124e+06
我该如何添加它们?
答案 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
。