How do I divide in the Linux console?

LinuxMathCommand LineDivide

Linux Problem Overview


I have to variables and I want to find the value of one divided by the other. What commands should I use to do this?

Linux Solutions


Solution 1 - Linux

In the bash shell, surround arithmetic expressions with $(( ... ))

$ echo $(( 7 / 3 ))
2

Although I think you are limited to integers.

Solution 2 - Linux

echo 5/2 | bc -l

2.50000000000000000000

this '-l' option in 'bc' allows floating results

Solution 3 - Linux

Better way is to use "bc", an arbitrary precision calculator.

variable=$(echo "OPTIONS; OPERATIONS" | bc)

ex:

my_var=$(echo "scale=5; $temp_var/100 + $temp_var2" | bc)

where "scale=5" is accuracy.

man bc 

comes with several usage examples.

Solution 4 - Linux

You can use awk which is a utility/language designed for data extraction

e.g. for 1.2/3.4

>echo 1.2 3.4 | awk '{ print $2/$1 }'
0.352941

Solution 5 - Linux

I still prefer using dc, which is an RPN calculator, so quick session to divide 67 by 18 with 4 digits precision would look like

>dc
4k
67
18/p
3.7222
q
>

Obviously, much more available: man dc

Solution 6 - Linux

In bash, if you don't need decimals in your division, you can do:

>echo $((5+6))
11
>echo $((10/2))
5
>echo $((10/3))
3

Solution 7 - Linux

I assume that by Linux console you mean Bash.

If X and Y are your variables, $(($X / $Y)) returns what you ask for.

Solution 8 - Linux

Example of integer division using bash to divide $a by $b:

echo $((a/b))

Solution 9 - Linux

Something else you could do using raytrace's answer. You could use the stdout of another shell call using backticks to then do some calculations. For instance I wanted to know the file size of the top 100 lines from a couple of files. The original size from wc -c is in bytes, I want to know kilobytes. Here's what I did:

echo `cat * | head -n 100 | wc -c` / 1024 | bc -l

Solution 10 - Linux

You should try to use:

echo "scale=4;$variablename/3"|bc

Solution 11 - Linux

you can also use perl -e

perl -e 'print 67/8'

Solution 12 - Linux

I also had the same problem. It's easy to divide integer numbers but decimal numbers are not that easy. if you have 2 numbers like 3.14 and 2.35 and divide the numbers then, the code will be Division=echo 3.14 / 2.35 | bc echo "$Division" the quotes are different. Don't be confused, it's situated just under the esc button on your keyboard. THE ONLY DIFFERENCE IS THE | bc and also here echo works as an operator for the arithmetic calculations in stead of printing. So, I had added echo "$Division" for printing the value. Let me know if it works for you. Thank you.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionkman99View Question on Stackoverflow
Solution 1 - Linuxdave4420View Answer on Stackoverflow
Solution 2 - LinuxraytraceView Answer on Stackoverflow
Solution 3 - Linuxuser1504475View Answer on Stackoverflow
Solution 4 - LinuxjperrieView Answer on Stackoverflow
Solution 5 - LinuxlibjackView Answer on Stackoverflow
Solution 6 - LinuxMark RushakoffView Answer on Stackoverflow
Solution 7 - LinuxPaolo CapriottiView Answer on Stackoverflow
Solution 8 - LinuxDraemonView Answer on Stackoverflow
Solution 9 - Linux2upmediaView Answer on Stackoverflow
Solution 10 - LinuxJADAV AKASHView Answer on Stackoverflow
Solution 11 - LinuxlsiebertView Answer on Stackoverflow
Solution 12 - LinuxSHIBLIView Answer on Stackoverflow