Schrift
[thread]961[/thread]

Verzeichnis-Baum durchsuchen

Leser: 3


<< >> 4 Einträge, 1 Seite
Gast Gast
 2007-07-12 18:57
#345 #345
Hallo liebe Perl-Freunde,

Ich habe ein Problem beim Analysieren von verbosen GC....Aufgabe dieses Analysators ist es einen Applikationserver nach *.log Files zu durchsuchen und diese nach bestimmten Mustern zu analysieren.

Mein Problem liegt jedenfalls darin dass ich es nicht schaffe, alle log files herauszusuchen und dann mit jeweilgen pfad+name der Datei in ein array abzuspeichen.

Bisherige Versuche sahen so aus:

Code: (dl )
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
my $path = ".";


&scan_files($path);

print "\n";
exit(0);


sub scan_files
{
my (@scandirs,$scandir,@files,$file,$list);

$scandir = $_[0];

opendir(DIR,$scandir) || warn "can't open the directory $scandir: $!\n";

@scandirs = grep {!(/^\./) && -d "$scandir/$_"} readdir(DIR);

rewinddir(DIR);

@files=grep {!(/^\./) && -f "$scandir/$_" && (/\.log$/)} readdir(DIR);

closedir (DIR);

for $list(0..$#scandirs){

&scan_files($scandir."/".$scandirs[$list]);
}

if ($#files > 0){


foreach $file(@files){
print "$file\n";
}
}

return 1;
}


Diese Methode gibt zwar alle Files richtig aus, ich weiß aber nicht wie ich diese mit Pfad in ein Array stecken kann.....

Bitte deswegen um Hilfe...

Danke im voraus, Spuki
pq
 2007-07-12 19:09
#346 #346
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
besser CPAN:File::Find verwenden. und warum liest du zweimal
das verzeichnis aus und machst zwischendurch rewinddir, wenn du
es doch nur einmal auslesen müsstest? kostet halt mehr zeit.

im übrigen finde ich es recht ungewöhnlich, gleich am anfang der sub
alle variablen zu deklarieren, obwohl du sie erst später brauchst.

und wofür ist das hier gedacht?
Code: (dl )
1
2
3
4
5
6
7
 if ($#files > 0){


foreach $file(@files){
print "$file\n";
}
}

wenn @files mehr als einen eintrag enthält, iteriere darüber.
also bei einem element interessiert dich das nicht, oder wie?\n\n

<!--EDIT|pq|1184253237-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pktm
 2007-07-12 19:32
#347 #347
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hier bietet sich auch CPAN:File::Find::Rule an:
Code: (dl )
1
2
3
4
5
  # find all the .pm files in @INC
 my @files = File::Find::Rule->file()
                             ->name( '*.log' )
                             ->maydepth(1)
                             ->in( @my_dirs );
\n\n

<!--EDIT|pktm|1184254402-->
http://www.intergastro-service.de (mein erstes CMS :) )
Spuki
 2007-07-13 11:37
#348 #348
User since
2007-07-13
38 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=pq,12.07.2007, 17:09]besser CPAN:File::Find verwenden. und warum liest du zweimal
das verzeichnis aus und machst zwischendurch rewinddir, wenn du
es doch nur einmal auslesen müsstest? kostet halt mehr zeit.

im übrigen finde ich es recht ungewöhnlich, gleich am anfang der sub
alle variablen zu deklarieren, obwohl du sie erst später brauchst.

und wofür ist das hier gedacht?
Code: (dl )
1
2
3
4
5
6
7
 if ($#files > 0){


foreach $file(@files){
print "$file\n";
}
}

wenn @files mehr als einen eintrag enthält, iteriere darüber.
also bei einem element interessiert dich das nicht, oder wie?[/quote]
wollte mit meinem bsp eigentlich nur kleinen eindruck geben..... ehrlich gesagt habe ich diesen code nur aus einem anderen forum kopiert (etwas überholungsbedürftig wies scheint) ..... außerdem programmiere ich erst seit einer woche in perl (mach grad einen ferialjob :D )

möchte mich aber trotzdem bei euch bedanken.... kannte diese bibliothek (bis jetzt) noch nicht.... ich glaube jetzt bekomm ichs hin

mfg spuki

<closed> :D
$^="2rehtona 3lrep 1tsuj 4rekcah";@~=sort split/ /,$^;_(
_(_(_())));sub _{print$^=reverse substr$~[0],1;shift@~;}

...erster Versuch eines JAPH :D
<< >> 4 Einträge, 1 Seite



View all threads created 2007-07-12 18:57.