formatting output in human readable numbers


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting formatting output in human readable numbers
# 1  
Old 01-08-2005
formatting output in human readable numbers

Hi,

The following command provides the usage in 1024-byte blocks

du -ks * | sort -n | echo "$1"
...
1588820 user10
2463140 user11
2464096 user12
5808484 user13
6387400 user14
.....

I am trying to produce an output of first coulmn by multiplying by 1024 so that the output should display in bytes instead of 1024 kb blocks.



du -ks * | sort -n | awk '{print ($1 * 10242, $2)}'

getting the following output

1.62727e+10 user10
2.52275e+10 user11
2.52373e+10 user12
5.94905e+10 user13
6.54198e+10 user14


I even tried the printf as under:

du -ks * | sort -n | awk '{printf("%-20s%-10s\n", $1 * 1024, $2)}'

3.17764e+06 user10
4.92628e+06 user12
4.92819e+06 user13
1.1617e+07 user14
1.27748e+07 user15

Can some help to fix this output.

Thanks,
Ghazi
# 2  
Old 01-08-2005
This may not be the solution that you are looking for, but it comes to mind.... you might consider du with the -b flag. From the man page:


Quote:
NAME
du - estimate file space usage

SYNOPSIS
du [options] [file...]

POSIX options: [-askx] [--]

GNU options (shortest form): [-abcDhHklLmsSxX] [--block-size=size]
[--exclude=pattern] [--max-depth=n] [--help] [--version] [--]


POSIX OPTIONS
-a Show counts for all files encountered, not just directories.

-k Use 1024-byte units instead of the default 512-byte units.

-s Only output space usage for the actual arguments given, not for
their subdirectories.

-x Only count space on the same device as the argument given.

-- Terminate option list.

GNU OPTIONS
-a, --all
Show counts for all files, not just directories.

-b, --bytes
Print sizes in bytes, instead of kilobytes.


((( see man page for more options.... - Neo )))
# 3  
Old 01-08-2005
I am on HP.

-b For each name operand that is a directory for
which file system swap has been enabled, print the
number of blocks the swap system is currently using.

-k Gives the block count in 1024-byte blocks.

$> ll
total 96
-rwxr-xr-x 1 user test 23677 Jan 8 15:55 file1
-rwxr-xr-x 1 user test 23040 Jan 8 15:56 file2

$> du -bs * | sort -n
48 file1 #comment: result of 23677/512
48 file2 #comment: result of 23040/512
$> du -ks * | sort -n
24 file1 #comment: result of 23677/1024
24 file2 #comment: result of 23040/1024

thanks,
Ghazi
# 4  
Old 01-08-2005
Hmm... this is largely untested as I don't really have a heap of large directories to test on - however, something like

Code:
#!/bin/sh

for i in `ls /my/dirs/are/here`
do
   if [ -d "$i" ]; then
      result=`ls -lR "$i" | awk 'BEGIN {c=0;} {c+=$5} END{print c}'`
      echo "$result * 1024" | bc | awk -vdir=$i '{print $1, dir }'
   fi
done

will yield *approximate* values (not a true byte count as we're just multiplying the kilobyte count by 1024) on systems without GNU du for directories only....

Cheers
ZB
# 5  
Old 01-08-2005
Nooop... it does not work for me...

Is there other command which can produce the disk usage
in bytes instead of blocks.

thanks
# 6  
Old 01-08-2005
Quote:
Originally posted by ghazi
Nooop... it does not work for me...
Why doesn't it work for you? What is wrong with the output? Is there any output at all? What error messages are you getting? etc...

I only tested this under Linux and UNICOS as I don't have access to an HP-UX box until Monday when I'm back at work.

Cheers
ZB
# 7  
Old 01-08-2005
No there was no output. I did not get any error. The syntax looks good but does not do any thing.

Thanks,
Ghazi
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

When comparing binary files, show human readable result?

Hello. I am comparing two binary file. The first file is the source file. The second file is a modified version of the first one. Modification concern uuid value. Example first file have multiple occurrences of 69a3604b-ac2b-43b7-af84-0a4a67fc6962 second file have the same occurence... (1 Reply)
Discussion started by: jcdole
1 Replies

2. Programming

How to parse .nessus file to get result in human readable format?

Scripting Language: bash shell script, python I want to parse .nessus file in human readable format. If any one have any ideas please help me. (2 Replies)
Discussion started by: sk151993
2 Replies

3. Shell Programming and Scripting

Convert epoch time stamp into human readable format

Can someone help me to write a shell script to convert epoch timestamp into human readable format 1394553600,"test","79799776.0","19073982.728571","77547576.0","18835699.285714" 1394553600,"test1","80156064.0","19191275.014286","62475360.000000","14200554.720000"... (10 Replies)
Discussion started by: Moon1234
10 Replies

4. Shell Programming and Scripting

Multiple records need to convert UNIXtime to human readable datatime and all output in one format

Hello Experts, Below is the record i have: sample data attached I want this record of each row to be in single line and there are multiple rowise unixtime mentioned e.g 11996327 , This needs to be converted to Human readdable data and time from multiple rows Can you help me , it will be... (10 Replies)
Discussion started by: manishK
10 Replies

5. Shell Programming and Scripting

Making big find command more human readable

This does not work. One line works but my pattern are about 100 characters long and it is messy to read. When I try to use several lines it does not two' find "$inputDirectory" \( -name 'very long pattern1' -o -name 'very long pattern2' -o -name... (1 Reply)
Discussion started by: Michael Stora
1 Replies

6. UNIX for Dummies Questions & Answers

Display Directories with their sizes in human readable format

Hi, I want to list all the directories present in a particular location and want to display their sizes as well. I know "ls -lh" but it doesn't show the size of the complete directory. So i want something like dir1 266 MB dir2 2 KB dir3 22 MB ... ... file1 10 Kb ..... Thanks Sarbjit (4 Replies)
Discussion started by: sarbjit
4 Replies

7. UNIX for Dummies Questions & Answers

Make netstat human readable?

Is there any way to make netstat output the information in a more human readable format? even if it's not exact? I don't even care if it has to round up/down to the nearest Meg to make it work. I wind up having to stare at netstat running for while and I wish I could get it to output things in a... (10 Replies)
Discussion started by: MrEddy
10 Replies

8. Shell Programming and Scripting

Human readable sizes in Solaris bdf

hay every body i need script like bdf -h in hp-ux there is no option like solaris df -h it is only bdf -k so i need the output with GBytes (8 Replies)
Discussion started by: maxim42
8 Replies

9. UNIX for Dummies Questions & Answers

How to make user's qutoa in human readable format?

$ quota Disk quotas for user cqlouis (uid 1254): Filesystem blocks quota limit grace files quota limit grace /dev/sdb1 64 300000 320000 8 0 0 $ I want to make the output of command quota in human readable format? How to? As we... (2 Replies)
Discussion started by: cqlouis
2 Replies

10. Shell Programming and Scripting

script to convert epoch into human-readable

This is what I have to start out with more file 1208217600 1208131200 1193806800 I want to convert the epoch column into a human-readable format. My file has hundreds of these epoch times that I want to loop through and convert. (The epoch time is really the last column of the line) ... (3 Replies)
Discussion started by: snoman1
3 Replies
Login or Register to Ask a Question