Wenn Du die Subroutine "sub suchen" durch diesen Code ersetzt, dann sucht Dein Script in allen Verzeichnissen außer in den Verzeichnissen in denen die Zeichenkette "cgi" vorkommt.
Code:
|
sub suchen{
my $file=$_;
my $dir=$File::Find::dir;
return if($dir =~ /cgi/i);
$i=0;
return unless -f $file;
return unless -T $file;
return unless $file=~/.+\.((s)?htm(l)?|txt)$/;
open(FILE,"<$file");
while(<FILE>){
$zeile=$_;
$head=1 if($zeile=~/\<head/);
$head=0 if($zeile=~/\<\/head/ || $zeile=~/\<body/);
$zeile=~s/(\<[^\>\<]*\>)//g;
$zeile="" if($head);
if(($caps eq "on") && $zeile=~/$suchbegriff/){
for(;$zeile=~m/$suchbegriff/g;++$i){
}
}
if(($caps eq "") && $zeile=~/$suchbegriff/i){
for(;$zeile=~m/$suchbegriff/gi;++$i){
}
}
}
close(FILE);
$liste{"$dir/$file"}="$i" if($i>0);
$_=$file;
}
|
|
In der Variable "$startdir" steht das Startverzeichnis drin relativ zum Suchscript.
../ bedeutet eine Verzeichnisebene höher
../../ bedeutet zwei Verzeichnisebenen höher