[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