Too lazy for a full example, look at this demo code in the debugger
DB<72> map {if ($x=(/b/../d/)) { $out[$x]=$_; $last=$x }} a..e,a..e, +a..b,1..3,d..e; DB<73> x @out[1..$last] 0 'b' 1 1 2 2 3 3 4 'd' DB<74>
$x is actually a count of the flip-flop match and will be reset 3 times.
we keep the last max $x in $last
you only need to END{print @out[1..$last] } in your one-liner to eject just these last lines.
Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery
FootballPerl is like chess, only without the dice
assuming PATTERN2 and PATTERN3 are similar
>perl -ne"if ($x=(/PATTERN1/.../PATTERN?/)) { $out[$x]=$_; $last=$x; } +; END{ print @out[1..$last] }" input PATTERN1 SOME INFO TEXT4 TEXT5 TEXT6 PATTERN3 SOME INFO C:\tmp\files>
In reply to Re^2: command line perl command to get between lines with non greedy match
by LanX
in thread command line perl command to get between lines with non greedy match
by ravi_perl_monks
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |