How do I extract lines between two line delimiters in Perl?

前端 未结 6 1655
醉酒成梦
醉酒成梦 2020-12-09 06:23

I have an ASCII log file with some content I would like to extract. I\'ve never taken time to learn Perl properly, but I figure this is a good tool for this task.

Th

6条回答
  •  时光说笑
    2020-12-09 06:43

    You want the flip-flop operator (better known as the range operator) ..

    #!/usr/bin/env perl
    use strict;
    use warnings;
    
    while (<>) {
      if (/START/../END/) {
        next if /START/ || /END/;
        print;
      }
    }
    

    Replace the call to print with whatever you actually want to do (e.g., push the line into an array, edit it, format it, whatever). I'm next-ing past the lines that actually have START or END, but you may not want that behavior. See this article for a discussion of this operator and other useful Perl special variables.

提交回复
热议问题