Thanks Zaxo but that would be ok if I only needed unit and port vlaue.. but I need others from the string as well.. but those are always there so it was no prob (one int and 2 hex values)... here is the script I got now ... and it works fine:
open ERASER,">output.txt";
close ERASER;
open ERRORLOG, "<error.txt" or die "Can't read file error: $!\n";
open OUTPUT,">>output.txt" or die "Can't read file $!\n";
while( my $line = <ERRORLOG> )
{
chomp $line;
@line=split " ",$line;
if ($line[0]=~ /^c/)
{
$line =~/(c([0-9]+)).*(0x[A-Fa-f0-9]+).*(0x[A-Fa-f0-9]
++)/;
my $conn = $2;
my @error = ($3, $4);
my $value1= hex $error[0];
my $value2= hex $error[1];
my $unit = '';
if ($line =~/(unit=([0-9]+))/)
{
$unit= $2;
};
my $port = '';
if ($line =~/(port=([0-9]+))/)
{
$port= $2;
};
print OUTPUT "Conn: $conn, Value1: $value1,Value2: $v
+alue2, Unit: $unit,Port1: $po
rt,Stat: $line[6]\n";
}
}
close ERRORLOG;
close OUTPUT;