Скрипты для вычисления среднего числа номеров в файле данных Файл data.txt содержит следующее: 1.00 1.23 54.4 213.2 3.4 Вывод скриптов должен быть: ave: 54.646 Предпочтительными являются некоторые простые сценарии. Ответ 1 Вот один из способов: $ awk '{s+=$1}END{print "ave:",s/NR}' RS=" " file ave: 54.646 Ответ 2 Используя jq: $ seq 10|jq -s 'add/length' 5.5 -s (--slurp) считывает входные строки в массив. Или в случае OP: tr \ \\n<file|jq -s 'add/length'|sed 's/^/ave: /' Ответ 3 perl -lane '$a+=$_ for(@F);print "ave: ".$a/scalar(@F)' file если у вас несколько строк, и вам нужно всего лишь одно среднее: perl -lane '$a+=$_ for(@F);$f+=scalar(@F);END{print "ave: ".$a/$f}' file
Ответ 2 Используя jq: $ seq 10|jq -s 'add/length' 5.5 -s (--slurp) считывает входные строки в массив. Или в случае OP: tr \ \\n<file|jq -s 'add/length'|sed 's/^/ave: /'
Ответ 3 perl -lane '$a+=$_ for(@F);print "ave: ".$a/scalar(@F)' file если у вас несколько строк, и вам нужно всего лишь одно среднее: perl -lane '$a+=$_ for(@F);$f+=scalar(@F);END{print "ave: ".$a/$f}' file