[SP-pm] ordenando arquivos.
Andre Carneiro
andregarciacarneiro at gmail.com
Tue Jul 26 08:02:17 PDT 2011
Salve!
Tenho que ordenar 3 milhões de arquivos de um diretório(e isso tende a
aumentar). Mesmo que eu mova parte dos arquivos para outros diretórios,
ainda assim vai sobrar arquivo pra caramba.
Desse modo, eu pesquisei no perlmonks e outros lugares, e achei esse código
abaixo que até resolveria, se não fosse o problema de memória, pois usa uma
quantidade de memória proporcional a quantidade de arquivos.
<code>
#!/usr/bin/perl
use strict;
use warnings;
use DateTime;
my $start_time = time;
my %times = ();
opendir DIR, $ARGV[0] or die "Couldn't open $ARGV[0]; $!\n";
my @sorted =
sort {
$times{$b} cmp $times{$a}; # Was cmp D'oh! Thanks [dws]
}
map {
$times{$_} = (stat $_)[9]; $_;
} readdir DIR;
closedir DIR or warn "Couldn't close $ARGV[0]; $!\n";
local $" = $/;
print "@sorted\n";
my $end_time = time;
my $enlapsed_time = $end_time - $start_time;
my $dt = DateTime->from_epoch( epoch => $enlapsed_time );
my $etime = $dt->hms(':');
print "\nCrapy time: $etime\n";
</code>
Alguém conhece um algoritmo onde, sei lá, eu pudesse ordernar parte desses
arquivos e de depois juntar tudo de alguma forma, ou algo desse tipo?
Thx!
--
André Garcia Carneiro
Analista/Desenvolvedor Perl
(11)82907780
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110726/9832980a/attachment.html>
More information about the SaoPaulo-pm
mailing list