[Moscow.pm] Get human-readable output from du, sorted by size:
Dmitry Karpich
meettya на gmail.com
Ср Сен 28 16:31:25 PDT 2011
Вот любители лишних телодвижений :)
#!/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
> moscow-pm на pm.org | http://moscow.pm.org
Подробная информация о списке рассылки Moscow-pm