[Alug] PERL REPLACEMENT :-(((
Jia Baoyu
JiaBaoyu at t-online.de
Fre Apr 4 21:52:12 CEST 2003
Hallo,
seit etwa 3 Tagen suche ich eine Loesung Aus Logfile liest das Script
die Spaltennummer::
# ANFANG: Auslesen des Configfiles
open(CONFIG,"mike.config") or die "Error! $!\n";
close(CONFIG);
# alte Inhalten oeffnen :
open (CONFIG, "mike.config");
while (defined($line = <CONFIG>)) {
if ($line=~/^\d+?/)
{
$line=~s/^(\d+?).*?$/$1/;
$Name .= '$'.$1;
}
else { }
} # while1 ist fertig
close(CONFIG);
# ENDE: Auslesen des Configfiles
die man in Datei $Name in Form $1$2$3$4... schreibt. Zum Schluess
entfehrne ich die ueberfluessige Spalten:
$line=~s/^(.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)$/$ Name/;
Trotzt meiner Erwartungen ersetzt das Script die Spaltennamen durch
$1$2$3$4$5$6$7$8$9
Das ist Auszug aus Outputfile:
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
$1$2$3$4$5$6$7$8$9
Wenn ich die Variable direkt definiere:
$Name = "$2$3$7$8$9";
$line=~s/^(.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)(\.*?)$/$ Name/;
wird in dem Fall die Zeile ordentlich behandelt, hier ist wieder dar
Auszug aus dem Output:
20030331022604|ETC330-09|BlockedReadyToUnload|2|AF004162||||
20030331022625|ETC330-09|MatRmvd|2|AF004162||||
20030331022626|ETC330-09|PortNotAssociated|2|AF004162||||
20030331022655|ETC330-09|MatRcvd|2|AF004162||||
20030331022820|ETC330-09|MatRcvd|2|AF004162||||
Wo liegt Unterschied zwischen zwei $Name?
Noch was unerklaerbares:
$test = "$1$2$3$4$5$6$7$8$9";
if ($test eq $Name)
{
print "Ok!";
}
else {print "No!"}
Hier kommt "No!" -> ($test eq $Name)
$test = "$1$2$3$4$5$6$7$8$9";
if ($test == $Name)
{
print "Ok!";
}
else {print "No!"}
Hier kommt "Ok!" -> ($test == $Name)
Cu,
Jia