i wanna search for the PID i give and the string.
#!/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 "$_";
}
}
}
|