Perl内部管道

时间:2017-04-19 00:11:18

标签: pipe perl

我的脚本大致由两部分组成:

  1. 输入输入的预处理(我可以省略,合并,向输出添加行);
  2. 我进行实际处理的第二阶段。
  3. 是否有可能以某种方式将程序的第一部分传递给(Perl)程序的第二部分?我更愿意这样做同时做两件事。

    只是粗略地了解我目前对第1步的看法:

    #!/usr/bin/perl -w
    
    use strict;
    use warnings;
    
    my $block = '';
    while (my $line = <>) {
      if ($line =~ /^\[.*\] \[.*\] \[.*\] .*: /) {
        if ($block ne '') {
            print $block;
        }
        $block = $line;
      } else {
        $block = $block . $line;
      }
    }
    
    if ($block ne '') {
      print $block;
    }
    

    (步骤2应该只处理块,而不是单独的行)

    编辑:

    输入示例:

    [global-akka.actor.default-dispatcher-2973] [DEBUG] [2017-04-18 15:41:07,077] c.e.d.s.o.AbcService: Dropping update:  (ID: 1644856891, Version: 7
    name: "BBB CCC"
    disabled_position: true
    , status id 128385 )
    [global-akka.actor.default-dispatcher-2973] [DEBUG] [2017-04-18 15:41:07,077] c.e.d.s.o.AbcService: something else
    [global-akka.actor.default] [ERROR] [2017-04-18 15:41:07,077] c.e.d.s.o.DefService: yet something else
    

    由于

0 个答案:

没有答案