Current Perl documentation can be found at perldoc.perl.org.
Here is our local, out-dated (pre-5.6) version:
You can use Perl's somewhat exotic ..
operator (documented in
the perlop manpage):
perl -ne 'print if /START/ .. /END/' file1 file2 ...
If you wanted text and not lines, you would use
perl -0777 -pe 'print "$1\n" while /START(.*?)END/gs' file1 file2 ...
But if you want nested occurrences of START
through END
, you'll run up against the problem described in the question in this
section on matching balanced text.
Here's another example of using ..
:
while (<>) { $in_header = 1 .. /^$/; $in_body = /^$/ .. eof(); # now choose between them } continue { reset if eof(); # fix $. }