http://qs321.pair.com?node_id=554392


in reply to upto match please, my one-lina!!

Firefly258:

Howzabout this?

perl -ne 'print @t if /foo/; push @t,$_; shift @t if $#t>5' file
You can even slice @t in the print if you want to have a larger gap between the last printed item and the regular expression...

UPDATE: I golfed it down a little:

perl -ne 'print @t if /foo/; @t=(@t[1..4],$_)' file
--roboticus