У меня есть файл с 1800 строками, которые выглядят как этотКак рассчитать очень большие номера с Ьс в Баше
600.76
600.66
700.44
566.66
Ect..
Я сделал Баш скрипт для вычисления среднего значения.
Теперь я первым сделал переменную для подсчета суммарных строк столбцов, как:
Lines="$(awk 'END{print NR}' file.txt)"
Тогда другой переменной на сумму этого столбца, как это:
Sum="$(awk '{s+1=$1}END {print s}' file.txt)"
Наконец я Находить значит так:
Echo "scale=2 ; $Sum/$Lines" | bc
с включенным режимом отладки Она возвращает:
+echo 'scale=2 ; 1.72161e+06/1800'
(Standard_1): syntax error
Я понимаю, что теперь bc не имеет научной нотации, но как мне обойти это.
Я в порядке с короткой передачей десятичной дроби, ограничивая ее до 2 или 3 мест.
Почему бы не просто использовать 'awk'? – dawg
как насчет просто 'awk '{sum + = $ 1} END {print sum/NR}''? – twalberg
@twallberg awk возвращает научную нотацию после того, как ответ становится слишком большим. Какая исходная проблема – theloosegoos