клевая замена для kKMGT ,правда, если ассоциировать с 00123, то, если будет файл - 0 размера, то он не попадет в итоговый список, поэтому пошла заморочка с отрицательными весами (http://ubuntuforums.org/showpost.php?p=9410815&postcount=9)
например: ls -lAtrh total 0 -rw-rw---- 1 rwaprd01 rwa 0 Sep 29 08:59 test а результат скрипта: du-s2 1K . правда я только сейчас понял, что на du -h нулевые файлы вообще не показываются, только нулевые каталоги так что этот вариант подходит 29.09.2011, 03:31, "Dmitry Karpich" <[email protected]>: > Вот любители лишних телодвижений :) > > #!/bin/sh > du -h | > perl -e ' > print map { $_->[0] } > sort { $b->[3] <=> $a->[3] || $b->[1] <=> $a->[1] } > map { [ $_, /([\d.]+)(\w)/, $2 =~ tr/kKMGT/00123/r ] } <> > ' $* > > как-то так, хотя общественность негодуе, эти однострочники write-only > > Митяй. > > On Sep 29, 2011, at 2:31 AM, Denis Evdokimov wrote: > >> Как и обещал, альтернативный вариант >> >> my $c = 1; >> my %hum_comp = map {$_, $c*=1024} qw(K M G T P); >> $hum_comp{''} = 1; >> print map $_->[1], sort{$b->[0] <=> $a->[0]} map {/^(\d+(?>\.\d+)?)(\w?)/; >> [$1*$hum_comp{$2}, $_]} <> >> >> и чуть более сжатый >> du -h | perl -e'%hc=map{$_,$a=$a?$a*1024:1}qw(K M G T);print map >> $_->[1],sort{$b->[0]<=>$a->[0]}map{/^(\d+(?>\.\d+)?)(\w?)/;[$1*$hc{$2},$_]}<>' >> -- >> Moscow.pm mailing list >> [email protected] | http://moscow.pm.org > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org -- Nikolay Mishin -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
