in reply to A little golf anyone?
df -k|perl -ape'map{while(1024<$_){$_/=1024;$i++}$i="%6.1f".substr"KMG +",$i,1;$_=sprintf$i,$_}@F[1..3];$_=join"\t",@F,$/'
Output using the sample data looks like this:
/dev/dsk/c0t1d0s1 1.2G 795.7M 382.2M 68% /usr /dev/dsk/c0t1d0s3 239.7M 43.5M 172.2M 21% /var /dev/dsk/c0t1d0s0 414.6M 182.8M 190.3M 49% /home
I didn't come up with a way to cleanly format G to 1 decimal place, leaving K and M at a whole number (ie 1.2G, 240M).
94 if less precision and un-aligned formatting meets your standards :-P
df -k|perl -ape'map{while(1024<$_){$_>>=10;my$i++}$_.=substr"KMG",$i,1 +}@F[1..3];$_=join"\t",@F,$/' Output: /dev/dsk/c0t1d0s1 1G 795M 382M 68% /usr /dev/dsk/c0t1d0s3 239M 43M 172M 21% /var /dev/dsk/c0t1d0s0 414M 182M 190M 49% /home
Update: fixed miscounts
|
---|