The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
Google UNIX.COM


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Output formating jaydeep_sadaria Shell Programming and Scripting 1 04-10-2008 09:39 AM
formating output Krrishv Shell Programming and Scripting 20 02-02-2007 06:39 AM
formating date ragha81 Shell Programming and Scripting 2 01-05-2007 08:20 AM
How to concatenate two strings or several strings into one string in B-shell? fontana Shell Programming and Scripting 2 08-26-2005 08:58 AM
Disk formating DPAI UNIX for Dummies Questions & Answers 1 11-28-2001 05:06 PM

Reply
 
Submit Tools LinkBack Thread Tools Search this Thread Display Modes
  #1  
Old 03-24-2004
Registered User
 

Join Date: Aug 2002
Location: London, England
Posts: 84
formating number strings

I have treid searching for what I thought would be a common question...but to no avail.


I have to long numbers (4-8) digits. how can I format them so they are printed as 1,234,567 rather than 1234567? I have no idea where to start, have played with varying types of awk, print, substr.

Also, pecentages.....if you have total amount and amount used how, using expr, can you work out the percentage used? I get 0 as the value.

pecent=`expr $used / $avail \* 100`

percent, used, and avail have all been set previously as an integer value.

PS. I'm no mathsmatitiojkljknjn.....how ever you spell it, so my logic may be wrong.

Cheers,
Neil
Reply With Quote
Forum Sponsor
  #2  
Old 03-24-2004
...@...
 

Join Date: Feb 2004
Location: NM
Posts: 4,298
Try:
Code:
Percent=$(bc << %%
   scale=4
   ( ${used} / ${avail} ) * 100
   quit
 %%)
Reply With Quote
  #3  
Old 03-24-2004
Registered User
 

Join Date: Aug 2002
Location: London, England
Posts: 84
genius.....don't know what it all means but it works.

Cheers and beers,
Neil
Reply With Quote
  #4  
Old 03-24-2004
Perderabo's Avatar
Unix Daemon
 

Join Date: Aug 2001
Location: Washington DC Area
Posts: 8,658
Neither used nor avail sounds like a total and you need a total. But, for example 2 is 50% of 4. My mathematical training enables me to construct:
expr 2 \* 100 / 4
which will result in 50.

Since you are using expr, you must be using a weak shell. One solution for formatting numbers might be sed:
echo 1234567 | sed 's/\(.\)\(...\)\(...\)/\1,\2,\3/'
which will only work for 7 digit numbers. You will need similiar sed expressions for other number lengths and you will need to select the right one with if statements.
Reply With Quote
  #5  
Old 03-24-2004
Registered User
 

Join Date: Aug 2002
Location: London, England
Posts: 84
many thanks.......

This may not be allowed V's questions........

But I'm using ksh....is this a weak shell? if it is what makes it so......I'm always looking to improve my scripting and if changing the shell or the language is required, then so be it.
Reply With Quote
  #6  
Old 03-24-2004
Ygor's Avatar
Moderator
 

Join Date: Oct 2003
Location: -31.96,115.84
Posts: 1,249
From: HANDY ONE-LINERS FOR SED
Quote:
# add commas to numeric strings, changing "1234567" to "1,234,567"
gsed ':a;s/\B[0-9]\{3\}\>/,&/;ta' # GNU sed
sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta' # other seds

# add commas to numbers with decimal points and minus signs (GNU sed)
gsed ':a;s/\(^\|[^0-9.]\)\([0-9]\+\)\([0-9]\{3\}\)/\1\2,\3/g;ta'
Reply With Quote
  #7  
Old 03-24-2004
Ygor's Avatar
Moderator
 

Join Date: Oct 2003
Location: -31.96,115.84
Posts: 1,249
The shell can do integer arithmetic, you don't need to use expr:-

(( percent = 100 * $used / $avail ))
echo $percent
Reply With Quote
Google The UNIX and Linux Forums
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes




All times are GMT -7. The time now is 12:47 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008. All Rights Reserved.Ad Management by RedTyger Visit The Complex Event Processing Blog

Content Relevant URLs by vBSEO 3.2.0