#!/tools/opt/bin/t2.perl use Getopt::Std; getopts('hDp:f:sb:e:q:t:jl'); if($Getopt::Std::opt_f) {$sFile = $Getopt::Std::opt_f;} if($Getopt::Std::opt_p) {$iPid = $Getopt::Std::opt_p;} if($Getopt::Std::opt_q) {$sOutFile = $Getopt::Std::opt_q;} if($Getopt::Std::opt_c) {$iStr = $Getopt::Std::opt_c;} my $sAppNameString = "[c,C][m,M]"; my $sStartString = ".?[DWEM]"; my $sAppPidString = ".*\\s+$sAppNameString:(\\d+\\.?\\d*)\\s+.*"; my $sAppString = "$sStartString$sAppPidString"; open(HFILE, "< $sFile") or die ("Failed to open $sFile"); $hFile = *HFILE; print ("Processing file: \"$sFile\"\n"); #Splitting the log file per pid if ($Getopt::Std::opt_s) { seek($hFile,0,0); while (<$hFile>) { if (m/$sAppString/) { $iPidTmp = $1; } if(($iPid != 0) && ($iPid != $iPidTmp)) { next; } $hOutputFile = $hFiles{$iPidTmp}; if($hOutputFile) { print $hOutputFile "$_"; }else{ print ("PID = $iPidTmp\n"); open( HPIDFILE.$iPidTmp, ">$sOutFile.$iPidTmp" ) or die ("Failed to open $sOutputFile.$iPidTmp"); $hFiles{$iPidTmp} = *HPIDFILE.$iPidTmp; $hOutputFile = $hFiles{$iPidTmp}; print $hOutputFile "$_"; } } }