On Tue, 05 Oct 2004 22:36:45 -0400, Randy W. Sims <[EMAIL PROTECTED]> wrote: > On 10/5/2004 10:25 PM, Kevin Old wrote: > > Hello everyone, > > > > I'm parsing a Logwatch report I get daily from my server and have hit > > a snag. I'd like to grab everything between the "pam_unix Begin" line > > and the "pam_unix End" line. > > > > --------------------- pam_unix Begin ------------------------ > > sshd: > > Invalid Users: > > Unknown Account: 17 Time(s) > > Authentication Failures: > > admin (ym74043.ym.edu.tw ): 4 Time(s) > > root (ym74043.ym.edu.tw ): 3 Time(s) > > unknown (ym74043.ym.edu.tw ): 17 Time(s) > > ---------------------- pam_unix End ------------------------- > > > > The code I have is (assuming the entire report is in $body): > > > > $body =~ / > > \-+\spam_unix\sBegin\s\-+ > > \((.*)\s*\) #matchline > > \-+\spam_unix\sEnd\s\-+ > > /sx; > > > > This is where the .. range operator is useful: > > while (defined( my $line = <INPUT> )) { > if ( /-+ pam_unix Begin -+/ .. /-+ pam_unix End -+/ ) { > # between beginning and end > } > } > > See `perldoc perlop`, section "Range Operators"
Thanks Randy! Any ideas what I'm doing wrong when trying to pull the data out from between the parenthesis? -- Kevin Old [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>