Exact Multiplication


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Exact Multiplication
# 1  
Old 04-10-2009
Exact Multiplication

Hi,
I am writing a script in Bourne shell

Code:
#!/bin/sh
used=`quota -v | tail -1 | awk '{print $2}'`
total=`quota -v | tail -1 | awk '{print $3}'`
echo "$used"
echo "$total"
perc=`expr ${used} / ${total} * 100 | bc`
echo "$perc"

I want to get a percentage of quota used to total limit
I have tried many different ways but I am not being able to get the perfect answer

Could anyone please help me
Thank You

Last edited by Yogesh Sawant; 04-10-2009 at 06:24 AM.. Reason: added code tags
# 2  
Old 04-10-2009
did you try:
Code:
perc=`expr ${used} / ${total} \* 100 | bc`

# 3  
Old 04-10-2009
Thanks I found another way

perc=`expr ${used} "*" 100 / ${total} | bc `
# 4  
Old 04-10-2009
how in the world does that give floating point accuracy?!?!?
the bc is doing nothing.
expr is only giving integer math.

Code:
echo $used $total | nawk '{ printf( "%.04f\n", ( $1 / $2 ) * 100.0 );}'

# 5  
Old 04-10-2009
bc does give good precision, if used properly and without expr:
Code:
$ echo "scale=10; ${used} / ${total} * 100" | bc

Or, if your bc supports the -l option
Code:
$ echo "${used} / ${total} * 100" | bc -l

# 6  
Old 04-10-2009
Hammer & Screwdriver I like to multiply by 100 earlier in expression

See the following:

Code:
> used=25
> total=75
> echo "${used} / ${total} * 100" | bc
0
> echo "${used} / ${total} * 100" | bc -l
33.33333333333333333300
> echo "( ${used} *100 ) / ${total}" | bc
33
> echo "( ${used} *100 ) / ${total}" | bc -l
33.33333333333333333333

the 4th command is the 'best'
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Matrix multiplication

I have two files. Row id in File1 matches the column id in file2 (starting from column7 )except the last 2 characters. File1 has 50 rows and File 2 has 56 columns. If the id matches I want to multiply the value in column3 of File1 to the entire column in File2. and in the final output print only... (11 Replies)
Discussion started by: Akang
11 Replies

2. UNIX for Dummies Questions & Answers

Multiplication of two matrices

Hi there! I have two files like below File1(with a header, ~1000 rows, ~50 columns) ID1 ID2 ID3 ID4 ID5 MI1_A MI1_H MI2_A MI2_H 0 1 0 0 0 1 0 2 1 0 2 0 0 0 2 1 0 1 File2 (without a header, ~50 rows) MI1 A 0.4 3.1 MI2 B -0.2 0.1 Output ID2 M1_A M2_A 1 1*0.4 2*-0.2 2 2*0.4 0*-0.2 ... (22 Replies)
Discussion started by: Akang
22 Replies

3. Shell Programming and Scripting

Multiplication of array elements

Hi, I can't find out how to create correct code to get multiplication of each elements of array. Let's say I enter array into command line (2 3 4 5 6 8) and i need output 2*3*4*5*6*8=5760. I tried this one, but answer is 0. for i in $@; do mult=$((mult*i))done echo "mult: " $mult ... (4 Replies)
Discussion started by: rimasbimas
4 Replies

4. Shell Programming and Scripting

Multiplication of two files and and sorting

Hi, I have 2 ASCII files, say file1 AAAAA 3.465830E-12 BBBBB 4.263280E-08 CCCCC 1.113320E-17 DDDDD 0.000000E+00 ... file2 with as many lines as file1 3.932350E-12 1.194380E-07 4.901480E-17 0.000000E+00 3.921180E-40 (3 Replies)
Discussion started by: f_o_555
3 Replies

5. Shell Programming and Scripting

echo exact xml tag from an exact file

Im stumped on this one. Id like to echo into a .txt file all names for an xml feed in a huge folder. Can that be done?? Id need to echo <name>This name</name> in client.xml files. $path="/mnt/windows/path" echo 'recording names' cd "$path" for names in $path than Im stuck on... (2 Replies)
Discussion started by: graphicsman
2 Replies

6. Shell Programming and Scripting

QUESTION1: grep only exact string. QUESTION2: find and replace only exact value with sed

QUESTION1: How do you grep only an exact string. I am using Solaris10 and do not have any GNU products installed. Contents of car.txt CAR1_KEY0 CAR1_KEY1 CAR2_KEY0 CAR2_KEY1 CAR1_KEY10 CURRENT COMMAND LINE: WHERE VARIABLE CAR_NUMBER=1 AND KEY_NUMBER=1 grep... (1 Reply)
Discussion started by: thibodc
1 Replies

7. Programming

C multiplication with GCC

Hi all, newbie here. Does anyone know if it is possible to use GCC or Clang to multiply two unsigned numbers and have it use for intel instructions, the mull instruction or an imul. I can't figure how to word this to accomplish this task: (int)(((unsigned long long)result * (unsigned)2290649225)... (4 Replies)
Discussion started by: pheonix
4 Replies

8. UNIX for Dummies Questions & Answers

Multiplication using bc in a for loop

Hi, I would like to carry out a multiplication in a for loop but some how I get always zero. The result of the multiplication must be assigned to the variable x. Here is teh code for (( i=1;i<=15;i++)); do x=$( printf "%s\n " 'scale = 10; i*5.0*335.0*3.0/1000.0' | bc) echo $x $i... (5 Replies)
Discussion started by: f_o_555
5 Replies

9. Shell Programming and Scripting

using awk multiplication

Suppose i have a file A 1*2*3*4 2*4*4*22 and second file B 2*3*4*5 4*4*6*7 By multiplying file A by file B that is file A by first column in file B respectively output shud be 2*6*12*20 8*16*24*154 my code is =$1 next } {for (f=1;f<=NF;f++) (2 Replies)
Discussion started by: cdfd123
2 Replies

10. Linux

Multiplication with Fractions

Hello there, how do i multiply a fraction and a whole number? Example 20% of 50,000. I had gotten 0.2 using the following: chk=echo 20 100 | awk `{print $1/$2}` echo $chk $chk \* 50000 displays the error: non-numeric expression. (1 Reply)
Discussion started by: alby
1 Replies
Login or Register to Ask a Question