sort supports human values
du -sh * | sort -h du -sh * | sort -h coreutils-5.93.tar.bz2 2005-11-06 09:06 du -h | perl -e 'sub h{%h=(K=>10,M=>20,G=>30);($n,$u)=shift=~/([0-9.]+)(\D)/; return $n*2**$h{$u}}print sort{h($b)<=>h($a)}<>;'
Source: http://serverfault.com/a/62422/76878