从日志文件中获取该行并根据该行打印通过或失败

时间:2015-06-19 11:53:09

标签: perl shell

我正在编写一个perl脚本,我需要在日志文件中grep特定行或字符串或文本,该日志文件存在于使用" Expect"连接的远程机器中。来自我的perl脚本的模块。并且,如果该行存在于文件中,那么我必须打印输出通过或失败。

希望这很清楚,

以下是我正在尝试的代码:

$var1->send("grep Expected sea*\n");

打击"预期的海洋*"来自日志文件。如何将此行或字符串传递给变量以及如何将其打印通过或失败。

1 个答案:

答案 0 :(得分:0)

Send将输出回显到pty,如果在命令执行后尝试捕获输出,则需要使用exp_after。

     An example say:
      my $cmd = "your grep cmd";
      my $output;
     [
        qr"yourhostname",
        sub {
        $spawn_ok =1;
        my $val1 = shift; 
        $var1->send("$cmd; exit \n");
        exp_continue;
        }
     ],
     [
       qr"Expected sea*",  #you can match some string 
       sub {
            my $val1 = shift;
            $output = $val1->exp_after; #output of grep
            exp_continue;
            }
      ],

      print $output; # from here you can use $output to parse and with if condition you can print yes or no

这是我试过的关闭..希望这也有助于你检查[cpan](http://search.cpan.org/~rgiersig/Expect-1.15/Expect.pod“Expect”)