Thread Zeichenkette in Datei suchen (2 answers)
Opened by dschingis at 2007-10-15 16:19

dschingis
 2007-10-15 16:19
#100849 #100849
User since
2007-10-15
5 Artikel
BenutzerIn
[default_avatar]
Zum ersten Posting erstmal ein HALLO an alle!!!

Ich bin recht neu im Thema Programierung, brauche dies allerdings um mir das eine oder andere der täglichen Arbeit zu erleichtern. Aus diesem Grund binich jetzt hier gelandet um ein wenig Hilfe zu bekommen.

Ich möchte in einer Datei eine bestimmte Zeichenkette suchen. Wird diese gefunden soll er mir ein true geben, sonnst ein false.
Ich hab mir ein Grundgerüst gebaut mit dem ich dies machen will, aber irgendwie klappt das nicht, bzw. mir fehlt noch etwas Grundwissen um es auf die Reihe zu bekommen.

Hier mal mein Anfang:

Code (perl): (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
#!/usr/bin/perl

# Suchdatei
$logfile = "/root/install.log";

# Suchstrings
$esx301 = "Installing VMware-esx-3.0.1-32039.i386.";
$esx302 = "Installing VMware-esx-3.0.2-52542.i386.";
$centOS = "centos-release - 10:5-0.0.el5.centos.2.i386 installieren";

#Suchdatei oeffnen und in Array kopieren
open(HANDLE,"<$logfile") or die "Die Datei $logfile konnte nicht geoeffnet werden! Fehler: $!";
@file=<HANDLE>;
close(HANDLE) or die "Die Datei $logfile konnte nicht geoeffnet werden! Fehler: $!";

#Zeilenweiser Vergleich nach Suchstring
        chomp(@file);
        foreach $line (@file)
        {
                if((chomp($line)) = $esx301)
                {
                        print "ESX 3.0.1 gefunden";
                }
                elsif((chomp($line)) = $esx302)
                {
                        print "ESX 3.0.2 gefunden";
                }
                elsif((chomp($line)) = $centOS)
                {
                        print "CentOS gefunden";
                }
                else
                {
                        print "Keine gueltige OS Version gefunden!!!"
                }
        }


Mein Gedankengang:
Er soll zeilenweise durch die eingelesene Datei suchen.
Findet er den ersten String, soll die erste ausgabe erfolgen.
Findet er den zweiten String, soll die zweite Ausgabe erfolgen. ...
Findet er nichts davon, soll er die letzte Ausgabe machen und beenden.
Die letzte Ausgabe soll allerdings erst kommen wenn er die Datei (das Array) fertig durchsucht hat und keine Zeile mehr übrig ist ... wäre wünschenswert.

Kann mir hier mal jemand einen Gedankenanstoß geben um mich auf die Richtige Spur zu bringen?
Ihr sollt mir das ja nicht schreiben, nur ein paar Tipps das ich richtig suche ... ich will ja was dabei lernen!

Gruß und Danke
Dschingis

View full thread Zeichenkette in Datei suchen