コマンドラインから一連の数値の平均を取得する最も簡単な方法は何ですか?
-
03-07-2019 - |
質問
nixシステムで見つかると予想されるツールを使用して(実際、必要に応じてmsdosも問題ありません)、数値セットの平均を計算する最も簡単/最速の方法は何ですか?ストリームまたはファイルの行ごとに1つ持っていますか?
解決
Awk
awk '{total += $1; count++ } END {print total/count}'
他のヒント
awk ' { n += $1 }; END { print n / NR }'
これは合計を n
に累積し、アイテムの数で除算します( NR
=レコードの数)。
整数または実数で動作します。
Num-Utils をUNIXで使用する場合:
average 1 2 3 4 5 6 7 8 9
perl -e 'while (<>) { $sum += <*>; $count++ } print $sum / $count, "\n"';
Powershellでは、
get-content .\meanNumbers.txt | measure-object -average
もちろん、これは冗長な構文です。エイリアスを使用して入力した場合、
gc .\meanNumbers.txt | measure-object -a
&quot; st&quot;の使用( https://github.com/nferraz/st ):
$ st numbers.txt
N min max sum mean sd
10.00 1.00 10.00 55.00 5.50 3.03
個々の統計情報を表示するオプションを指定します:
$ st numbers.txt --mean
5.5
(免責事項:このツールを作成しました:))
Perl。
@a = <STDIN>;
for($i = 0; $i < #@a; $i++)
{
$sum += $a[i];
}
print $a[i]/#@a;
警告Emptor:私の構文は少し気味が悪いかもしれません。
所属していません StackOverflow