# HG changeset patch # User Heiko Schlittermann # Date 1259736451 -3600 # Node ID 63072e0d02a6ddeb196eb7e71d0278374ebb441c # Parent fc91e5013dbbebed38d547440408d86621d4495b added pattern match diff -r fc91e5013dbb -r 63072e0d02a6 .perltidyrc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.perltidyrc Wed Dec 02 07:47:31 2009 +0100 @@ -0,0 +1,2 @@ +--paren-tightness=2 +--square-bracket-tightness=2 diff -r fc91e5013dbb -r 63072e0d02a6 postgrep --- a/postgrep Wed Dec 02 07:37:59 2009 +0100 +++ b/postgrep Wed Dec 02 07:47:31 2009 +0100 @@ -5,20 +5,27 @@ use Memoize; use Smart::Comments; +die "Usage: $0 pattern [file]…\n" if !@ARGV; + +my $pattern = shift; + my %msglog; my %removed; memoize("str2time"); while (<>) { - chomp; - /^(?.{15}) - \s(?\S+) - \s(?\S+): - \s(?[[:xdigit:]]+): - \s(?.*) - /x or next; + if (!/^(?.{15}) + \s(?\S+) + \s(?\S+): + \s(?[[:xdigit:]]+): + \s(?.*)/x) { + + print "$_\n" if /$pattern/i; + next; + + } my $ts = str2time($+{date}); @@ -38,7 +45,8 @@ foreach (grep { ($ts - $_) > 60 } keys %removed) { foreach (@{delete $removed{$_}}) { - print join "\n", @{delete $msglog{$_}}, "", ""; + print @{delete $msglog{$_}}, "\n" + if /$pattern/i ~~ @{$msglog{$_}}; } } @@ -47,5 +55,6 @@ # the rest foreach (values %msglog) { - print join "\n", @$_, "", ""; + print join @$_, "\n" + if /$pattern/ ~~ @{$msglog{$_}}; }