1
2
3
4
5
6
7
8
if ($f =~/$searchstring/i)
{
print "\nfound $f\n"
}
else
{
print "\nnot found\n"
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#! /usr/bin/perl use strict; use warnings; my $searchstring = 'usr/include/malloc.h'; my @files = ( 'D:/Igor_Perforce/DTBS/driver/qnx/util/readsmart/trunk/src/readsmart.c', 'D:/Igor_Perforce/DTBS/driver/qnx/util/readsmart/trunk/src/usr/include/malloc.h', ); for my $f ( @files ) { if ( $f =~ /$searchstring/i ) { print "\nfound $f\n" } else { print "\nnot found\n" } }
2012-07-27T09:52:38 Iggy86$searchstring könnte dabei so aussehen "usr/include/malloc.h" und $f so "D:/Igor_Perforce/DTBS/driver/qnx/util/readsmart/trunk/src/readsmart.c \"
1
2
3
not found
found D:/Igor_Perforce/DTBS/driver/qnx/util/readsmart/trunk/src/usr/include/malloc.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
$searchstring = "usr/include/malloc.h";
$k = 0 ;
$n = 0 ;
sub recDir
{
my $f;
my @theDir;
my $DIR;
my @theDir;
system "pwd";
my @dfiles;
@dfiles = glob("*.d");
foreach $f (@dfiles)
{
$k=$k+1;
printf ("\n$k.)found $f \n");
$n=0;
open(IN,'<'.$f) || die "Can not open file $datei: $!";
while(<IN>){
$n=$n+1;
printf "$n.)$_";
}
if ($_ =~/$searchstring/i)
{
print "\nfound in IN\n"
}
else
{
print "\nnot found\n"
}
close IN;
}
if (opendir ($DIR, "."))
{
# print "+\n";
@theDir = readdir($DIR);
foreach $f (@theDir)
{
unless ( ($f eq ".") || ($f eq "..") )
{
# printf "-$f\n";
if (-d $f)
{
# printf "+$f\n";
chdir($f);
recDir($f);
chdir("..");
}
}
}
}
else
{
print "can't open Dir $sourcefile $! \n";
$globalerror = 1;
}
}
chdir($ARGV[0]);
recDir($ARGV[0]);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
#!/usr/bin/perl use strict; use warnings; my $searchstring = "usr/include/malloc.h"; my $searchdir = $ARGV[0]; my $file_counter=0; my $line_counter=0; my $error=recDir($searchdir, $searchstring, \$file_counter, \$line_counter); printf ( "%04u Errors occured!\n", $error ) if($error); printf ( "searched files: %06u\n", $file_counter ); printf ( "searched lines: %06u\n", $line_counter ); ######################################################################## # Functions ############################################################ ######################################################################## sub recDir { my $path=shift(@_); my $search=shift(@_); my $filecnt=shift(@_); my $linecnt=shift(@_); my $error=0; if ( opendir (my $DIR, $path) ) { my @next_dirs; while( my $file=readdir( $DIR ) ) { # . und .. überspringen next if($file eq '.' or $file eq '..'); # neuen pfad konstruieren my $new_path="$path/$file"; # wenn Verzeichnis, # dann in die Liste und nächster Name if(-d $new_path) { push(@next_dirs, $new_path); next; } # wenn Datei und Endung ".d" if(-f $new_path and $file=~/\.d$/) { # gesamten Zähler erhöhen $$filecnt++; # Ausgabe wo man gerade ist. printf ( "\n06u.) found %s \n", $$filecnt, $new_path ); # Datei öffnen und prüfen if(open(my $fh, '<', $new_path)) { my $found=0; while( my $line=<$fh> ) { $$linecnt++; # wenn der Suchstring vorhanden, # dann dann found=1 und Suche abbrechen if( index($line,$search) != -1) { $found++; last; } } # Datei schließen close($fh); # Ausgabe des Suchergebnisses if($found) { printf ( "\nSearchstring found in %s\n", $file ); } else { printf ( "\nSearchstring not found in %s\n", $file ); } } else { warn "Can't open $new_path ($!)\n"; $error++; } } } $error += recDir($_,$search,$filecnt,$linecnt) for(@next_dirs); } else { warn "can't open Dir $path ($!)\n"; $error++; } return $error; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
open(IN,'<'.$f) || die "Can not open file $datei: $!";
while(<IN>){
$n=$n+1;
printf "$n.)$_";
if ($_ =~/$searchstring/i)
{
print "\nfound in $f\n"
}
else
{
#print "\nnot found $searchstring in $_\n"
}
}
close IN;