Вопрос по math, linux – Как мне разделить в консоли Linux?
У меня есть переменные, и я хочу найти значение одного, деленное на другое. Какие команды я должен использовать для этого?
У меня тоже была такая же проблема. Целые числа легко разделить, но десятичные числа не так просты.
если у вас есть 2 числа, такие как 3.14 и 2.35, и разделите числа тогда,
код будет делением =echo 3.14 / 2.35 | bc
echo & quot; $ Division & quot;
цитаты разные. Не смущайтесь, он расположен прямо под кнопкой esc на клавиатуре.
ЕДИНСТВЕННАЯ РАЗНИЦА - | bc, а также здесь echo работает как оператор арифметических вычислений вместо печати.
Итак, я добавил echo & quot; $ Division & quot; для печати значения. Дайте мне знать, если это работает для вас. Спасибо.
что вы могли бы сделать, используя ответ raytrace. Вы можете использовать стандартный вывод другого вызова оболочки, используя обратные ссылки, чтобы затем сделать некоторые вычисления. Например, я хотел узнать размер файла из первых 100 строк из нескольких файлов. Исходный размер отwc -c
в байтах, я хочу знать килобайт. Вот что я сделал:
echo `cat * | head -n 100 | wc -c` / 1024 | bc -l
Я все еще предпочитаю использоватьdc, который является калькулятором RPN, поэтому быстрая сессия для деления 67 на 18 с точностью до 4 цифр будет выглядеть
>dc
4k
67
18/p
3.7222
q
>
Очевидно, гораздо больше доступно:man dc
man
: RPN = обратная польская запись; в двух словах: сначала вы вводите операнды, а затем оператор. Завершающийp
необходим для вывода результата. Неинтерактивная версия приведенного выше расчета:dc -e '4k 67 18 / p'
, Предостережение: не устанавливать точность (с{numPlaces}k
) по умолчанию 0, то есть целочисленное деление.
echo 5/2 | bc -l
2.
это '-1'; опция в "до н.э"; позволяет плавающие результаты
-l
по умолчанию вы получаете 20 знаков после запятойand загружена математическая библиотека, которая определяет дополнительные функции, такие как синус; чтобы явно указать количество десятичных знаков, добавьте к выражениюscale={numPlaces};
(тоже), как показано в ответе @ user1504475. Другими словами:-l
это удобная альтернатива указаниюscale=20;
, но требует высокой производительности из-за загрузки библиотеки - реальное влияние, однако, кажется незначительным.
AWK которая является утилитой / языком, предназначенным для извлечения данных
например для 1.2 / 3.4
>echo 1.2 3.4 | awk '{ print $2/$1 }'
0.352941