0

ログを解析し、エラー、致命的などの特定のパターンを検索し、合格と不合格のステータスを決定する 1 つの perl スクリプトがあります。私の質問に来ると、「エラー (E302/FEP0512SRA)」のような一意のパターンを検索する必要があります。そのようなパターンがログ ファイルの任意の行で presnet である場合、error_cnt を 1 増やす必要があります。

「\」とBelow approchを試しましたが、どちらの場合も上記のパターンをキャプチャできませんでした。

my $str = "Error (E302/FEP0512SRA)";
if($line =~ /$str/) {
      $error_cnt++;      
}

ログでこの文字列をキャッチできるように、他に何ができるか教えてください。

4

2 に答える 2

3

文字列には正規表現のメタ文字 (括弧) が含まれています。それらを手でエスケープするか、次を使用する必要がありますquotemeta

my $str = quotemeta "Error (E302/FEP0512SRA)";
于 2013-09-12T11:27:05.533 に答える