ich habe folgendes Problem:
Ich lese in meinem Script eine Datei zeilenweise aus und suche in jeder Zeile nach zwei Suchbegriffen nämlich "atmport" und "elan". Sind diese beiden Begriffe vorhanden soll die Zeile NICHT in eine Datei geschrieben werden, falls die beiden Begriffe nicht vorhanden sind, soll die Zeile geschrieben werden.
Mein Script sieht folgendermaßen aus:
Code: Alles auswählen
print "\nPower-HUB und ES Konverter\n";
print "==========================\n\n";
print "Bitte geben Sie die Quelldatei an!\n";
chop($sourcefile = );
-e $sourcefile or print "Die Datei " . $sourcefile . "existiert nicht!";
open(EFILE, "<$sourcefile") or die "Kann Quelldatei nicht oeffnen!\n";
print "\nBitte geben Sie die Datei an, in der die konvertierten Daten speichert werden sollen!\n";
chop($destfile = );
open(AFILE, ">>$destfile");
while ($line = )
{
$pos = -1;
while (($pos = index($line, "atmport", $pos)) <= -1)
{
print AFILE $line;
$pos++;
}
$pos = -1;
while (($pos = index($line, "elan", $pos)) <= -1)
{
print AFILE $line;
$pos++;
}
}
close(AFILE);
close(EFILE);
exit 0
Das Script bleibt beim durchsuchen hängen und gibt immer nur die gleiche Zeile aus.
Hier mal die Datei, in der gesucht werden soll:
...............
00 00 0c 3e 64 55 89.0.17.1:49:atmport-49
00 00 0c 6e 0b 00 89.0.17.1:49:atmport-49
00 00 1c b0 a9 0b 89.0.17.1:49:atmport-49
00 00 1d 11 f8 51 89.0.17.1:1:Port_1
00 00 1d 15 81 6b 89.0.17.1:15:Port_15
00 00 1d 17 8d 11 89.0.17.1:2:Port_2
00 00 1d 18 51 40 89.0.17.1:49:atmport-49
00 00 1d 23 74 0f 89.0.17.1:16:Port_16
00 00 50 08 c4 ed 89.0.17.1:49:atmport-49
00 00 5e 00 01 01 89.0.17.1:49:atmport-49
00 00 74 7d 33 58 89.0.17.1:49:atmport-49
00 00 74 7e 77 64 89.0.17.1:49:atmport-49
00 00 74 82 cb 3c 89.0.17.1:49:atmport-49
00 00 74 8c 39 6d 89.0.17.1:49:atmport-49
00 00 74 8c 84 bf 89.0.17.1:49:atmport-49
00 00 74 8f 4a 89 89.0.17.1:49:atmport-49
00 00 74 90 09 0e 89.0.17.1:49:atmport-49
00 00 74 90 59 ff 89.0.17.1:49:atmport-49
00 00 74 91 40 42 89.0.17.1:49:atmport-49
00 00 85 2b 6d 48 89.0.17.1:49:atmport-49
................
Hat jemand eine Idee, wo der Fehler liegt?
Danke!
Gruß,
Andi
EDIT: [ code ] eingefuegt - blackm