в понятном виде так
perl -ne '
if (/^(\d+)\s+(.*$)/) {
$l = log( $1 + .1 );
$m = int( $l / log(1024) );
printf(
"%6.1f\t%s\t%25s %s\n",
( $1 / ( 2**( 10 * $m ) ) ),
( ( "K", "M", "G", "T", "P" )[$m] ),
"*" x ( 1.5 * $l ), $2
);
}
'
28.09.2011, 18:01, "Nikolay Mishin" <[email protected]>:
> для файлов, правда есть такой хак (Perl hack: To display large files
> :http://www.cyberciti.biz/faq/find-large-files-linux/)
>
> du -k | sort -n | perl -ne 'if (
> /^(\d+)\s+(.*$)/){$l=log($1+.1);$m=int($l/log(1024)); printf
> ("%6.1f\t%s\t%25s %s\n",($1/(2**(10*$m))),(("K","M","G","T","P")[$m]),"*"x
> (1.5*$l),$2);}'
>
> 28.09.2011, 17:59, "Nikolay Mishin" <[email protected]>:
>
>> есть еще вывод первых 10 больших файлов
>> find . -type f | xargs ls -s | sort -rn | awk '{size=$1/1024; printf("%dMb
>> %s\n", size,$2);}' | head
>> вот бы теперь сделать так, чтобы выводились и файлы и каталоги и они были
>> отсортированы по размеру
>> правда знака директории тоже бы не помешал (ну это доп задача..так сказать)
>>
>> 28.09.2011, 17:55, "Nikolay Mishin" <[email protected]>:
>>> нереально, спасибо, да, хорошее исправление, а то после запятой не
>>> сортировал, точнее брал для сортировки только целую часть
>>>
>>> 28.09.2011, 17:41, "Denis Evdokimov" <[email protected]>:
>>>> Николай, у вас небольшая неточность вот в этом месте
>>>> map { [ $_, /([TMGKk])/, /(\d+)/ ] }
>>>> стоит использовать
>>>> map { [ $_, /([TMGKk])/, /(\d+(:?\.\d+)?)/ ] }
>>>>
>>>> du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k
>>>> => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=>
>>>> $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/,
>>>> /(\d+)/ ] } <>' | head | awk '{print $1}'
>>>> 48G
>>>> 22G
>>>> 21G
>>>> 12G
>>>> 11G
>>>> 9.7G
>>>> 8.1G
>>>> 8.1G
>>>> 8.6G
>>>> 8.4G
>>>>
>>>> du -h |perl -e '%byte_order = ( T => -4, G => -3, M => -2, K => -1, k
>>>> => -1 ); print map { $_->[0] } sort { $byte_order{$a->[1]} <=>
>>>> $byte_order{$b->[1]} || $b->[2] <=> $a->[2] } map { [ $_, /([TMGKk])/,
>>>> /(\d+(:?\.\d+)?)/ ] } <>' | head | awk '{print $1}'
>>>> 48G
>>>> 22G
>>>> 21G
>>>> 12G
>>>> 11G
>>>> 9.7G
>>>> 8.6G
>>>> 8.4G
>>>> 8.1G
>>>> 8.1G
>>>> P.S. Есть ещё несколько мыслей, напишу их позже, сейчас много работы.
>>>>
>>>> --
>>>> Moscow.pm mailing list
>>>> [email protected] | http://moscow.pm.org
>>> --
>>> Nikolay Mishin
>>>
>>> --
>>> Moscow.pm mailing list
>>> [email protected] | http://moscow.pm.org
>> --
>> Nikolay Mishin
>>
>> --
>> Moscow.pm mailing list
>> [email protected] | http://moscow.pm.org
>
> --
> Nikolay Mishin
--
Nikolay Mishin
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org