Finde bestemte filer
Hej alle.Jeg er i gang med at konvertere et af mine gamle Bash-scripts til Perl, men jeg løber med jævne mellemrum ind i nogle problemer. Jeg prøver at få fat i alle filer i et dir, som opfylder alle af flg. kriterier:
- er en fil (ikke et dir)
- ender på .vmdk
- indeholder ikke -flat i filnavnet
I Bash scriptet var det meget let at gøre vha. et par grep pipes, men jeg er opsat på, at gøre det på den "rigtige" måde i mit nye Perl-script, og derfor ikke bruge shell escapes (back ticks).
Jeg prøvede at klare det med DirHandle, men jeg har lidt svært ved at få implementeret "grep -v <streng>" i den. Her er hvad jeg indtil videre er kommet frem til:
my $dh=DirHandle->new($currentDir);
my @files=sort grep {-f}
map {"$currentDir/$_"}
grep {!/^\./}
grep {m/\.vmdk$/}
# grep {} # grep -v
$dh->read();
foreach my $file (@files)
{
print "$file\n";
}
Som sagt, er det "grep -v" der driller lidt. Jeg ved ikke om det kan gøres. Så vidt jeg kan se skal man evt. komme op med et regex, som ekskluderer et eller andet, men jeg er ikke så skarp til at lave regex'es.
Håber I kan hjælpe mig med dette problem.
Mvh.
