[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