This regex will match whitespace at the beginning and end of the line:
# Find lines starting with "_ and ending with ", and containing option +al # leading or trailing whitespace. # my $MAL = '^\s*"_.*"\s*$';
If this still doesn't help you, try logging the lines which DON'T match:
use strict; use warnings; my $out = "Backup/backup.txt"; my $out2 = "nomatch.txt"; my $logfile = "log.txt"; my $MAL = '^\s*"_.*"\s*$'; open LOG, "<", $logfile or die "Cannot open $logfile for read :$!"; open OUT, ">$out" or die "Cannot open $out for write :$!"; open OUT2, ">$out2" or die "Cannot open $out2 for write :$!"; while ( <LOG> ) { if ( $_ =~ /$MAL/i ) { print OUT $_; } else { print OUT2 $_; } }
Then you can see if your logging mechanism is to blame, or whether there's some other reason that the lines you expect to match don't actually match, by checking what (if anything) gets written to "nomatch.txt".
In reply to Re^5: script to grab string from log and print them in a different log
by liverpole
in thread script to grab string from log and print them in a different log
by perl_geoff
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |