Perl find - возвращение из памяти - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь использовать командную строку perl для отображения 10 лучших файлов из каталога объемом 690 ГБ.Поскольку у него очень длинный список файлов, моя команда заканчивается ошибкой «Недостаточно памяти»

perl -MFile::Find -wE '
    find(sub { say -s $_, " $File::Find::name" }, "/opt/app")
' \ | sort -nr | head -n10

Как я могу оптимизировать эту команду для получения желаемого результата.Я использовал команду find для вывода списка файлов, однако на его обработку ушло не менее 15 минут.

1 Ответ

0 голосов
/ 19 мая 2018

Скорость торговли для памяти (не проверено),

perl -MFile::Find -wE'
    find(sub{
        @s = sort { $b->[0] <=> $a->[0] } [ -s $_, $File::Find::name ], @s;
        splice(@s, 10);
    }, "/opt/app");
    say @$_ for @s;
'
...