[Vienna-pm] WG: find in several directories

Josef e9427749 at stud4.tuwien.ac.at
Mon Feb 18 10:35:24 PST 2008


Hi, alle!

Hätte eh an alle gehen sollen, ...


Baier Oliver schrieb:
> Hallo Marcel,
> 
> Josef hat mir vor einer Minute eine gleichwertige Lösung geschickt.
> 
> Mein Problem dabei ist, dass ich File::Find bei dieser Variante
> das Toplevel-Verzeichnis zur Suche übergeben müsste, was bei
> Millionen von Dateien dann aber schnell recht mühsam wird.
> 
> Ich stelle mir vor, dass es irgendwo ein Pendant zu 'ls' gibt.
> Die Perl-regexen in der Schnittstelle kann man auch zu [0-9] & Co
> umwandeln lassen.

glob() und File::Glob

und von vorhin etwas abgeändert,

my $dirRE =qr'/content/nemat/parts/\d+/tid\d*';
my $fileRE=gr'id\d+_\d+_(\d+)\.xml';
my $startdir='/';
# v- ungetestet
use File::Find qw(find);
use Path::Class qw(dir);
my @result;
find sub { push @result,$File::Find::name
               if -f $_ && /^$fileRE$/ &&
               $File::Find::dir=~/^$dirRE[\\/]?$/ },
               dir($startdir)->absolute; # sollte reichen
print map "$_\n", @result;


> @Josef: Die Klammern sind anschliessend ein Kriterium für die Verarbeitung. 

achso.

pfiateng,
   Jo "schon zulange auf" sef




More information about the Vienna-pm mailing list