Подтвердить что ты не робот

Какой самый быстрый способ получить среднее из набора чисел из командной строки?

Используя любые инструменты, которые вы ожидаете найти в системе nix (на самом деле, если вы хотите, msdos тоже отлично), что является самым простым/быстрым способом вычисления среднего числа чисел, предполагая, что вы иметь их по одной в строке в потоке или файле?

4b9b3361

Ответ 1

Awk

awk '{total += $1; count++ } END {print total/count}'

Ответ 2

awk ' { n += $1 }; END { print n / NR }'

Это скопирует сумму в n, затем делит на количество элементов (NR= Число записей).

Работает для целых чисел или реалов.

Ответ 3

Используя Num-Utils для UNIX:

average 1 2 3 4 5 6 7 8 9

Ответ 4

perl -e 'while (<>) { $sum += $_; $count++ } print $sum / $count, "\n"';

Ответ 5

В Powershell это будет

get-content .\meanNumbers.txt | measure-object -average

Конечно, этот подробный синтаксис. Если вы набрали его с помощью псевдонимов,

gc .\meanNumbers.txt | measure-object -a

Ответ 6

Использование "st" (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

(ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я написал этот инструмент:))

Ответ 7

Perl.

@a = <STDIN>;

for($i = 0; $i < #@a; $i++)
{
   $sum += $a[i];
}

print $a[i]/#@a;

Caveat Emptor: Мой синтаксис может быть немного плавным.