Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: upto match please, my one-lina!!

by roboticus (Chancellor)
on Jun 09, 2006 at 00:24 UTC ( #554392=note: print w/replies, xml ) Need Help??

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


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

Replies are listed 'Best First'.
Re^2: upto match please, my one-lina!!
by jwkrahn (Monsignor) on Jun 09, 2006 at 03:56 UTC
    That doesn't print the "---\n" string or the correct lines. You want something like:
    perl -ne'@t=(@t[1..4],$_);/regex/&&die@t,"---\n"' file

      I was having so much fun playing with one-liners that I forgot the parameters of the problem. I love that die trick.... I'll have to try it:

      perl -ne '@t=(@t[1..4],$_,"---\n");die@t if/foo/' file
        You are adding two lines for every one line you remove so every second line will be "---\n".

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://554392]
[Discipulus]: The Count of Moret; The Red Sphinx is a single book appeared with different titles. it is one of the best and alot of understimed Dumas book.
choroba has only read the first two
[Discipulus]: if i can suggest La Reine Margot too is a great book and obviously The Count of Monte Cristo that is a chef-d'œuvre
[Discipulus]: The red sphinx is about Rechilieu, absolutely thrilling

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (10)
As of 2017-05-24 07:19 GMT
Find Nodes?
    Voting Booth?