here is the log snippet--if($line =~ /Auth\s+failed.*/) { $ErrorMsg=$1; printf "Failure,"; while ( $line = <$log> ) { if ($line =~ /ArAuthFrameworkImpl::doPostAuth.*Authent +ication\s*mechanism\s*returned\s*\[(\d+)\]/) { printf FP_OUT "${1}, $ErrorMsg\n"; return; } } }
in $Error_Msg i want to capture the line "ApricotID Credential Expired". I just want to know how to capture the previous line of the matching string. Thanks NTArcot Native Server: recvd AA_BIN_MSG_VER_CHG Wed May 20 05:22:58.368 2009 Morocco Standard Time INFO: pid 2172 t +id 3412: 170: 10106934: Cert Subject String....:[ UserID=123456; Card +Name=CARD] Wed May 20 05:22:58.368 2009 Morocco Standard Time INFO: pid 2172 t +id 3412: 170: 10106934: Cert issuer............: Wed May 20 05:22:58.368 2009 Morocco Standard Time INFO: pid 2172 t +id 3412: 170: 10106934: Cert serial String.....:[75fa] Wed May 20 05:22:58.368 2009 Morocco Standard Time INFO: pid 2172 t +id 3412: 170: 10106934: ArcotException verifying Arcot challenge: [Ar +cot Exception,Certificate expired or not yet valid: certificate expir +ed or not yet valid in ArcotVerifier], Challenge verification failed +for Wed May 20 05:22:58.368 2009 Morocco Standard Time INFO: pid 2172 t +id 3412: 170: 10106934: ApricotID Credential Expired. serial : [75fa] Wed May 20 05:22:58.368 2009 Morocco Standard Time INFO: pid 2172 t +id 3412: 170: 10106934: Auth failed due to Account Verification(seria +l Number [75fa])
In reply to grep previous line of the matched string by namishtiwari
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |