サーバーから次の方法で入力を受け取ります(サンプル入力データ)。
[1284336000]: host1;event1;flag;state;counter;errors or warnings
[1284336000]: host2;event1;flag;state;counter;errors or warnings
[1284336000]: host1;event2;flag;state;counter;errors or warnings
[1284336000]: host2;event2;flag;state;counter;errors or warnings
入力を一致させ、一致に基づいて、値を持つ変数を作成する必要がありますhostname-eventname
。
私の正規表現
^\[\d+\]:\s((host1);(event1)|(host2);(event2)|(host3);(event2)|(host2);(event1));(\w+);(\w+);(\d).+$
$2
またはのような参照変数で、ホストとイベントの名前を別々にしたいと思います$3
。
たとえば、次の入力について考えてみます。
[1284336000]: host1;event1;flag;state;counter;errors or warnings
<hostname-eventname>
上記の一致から取得したホスト名とイベント名に応じた名前の変数を作成する必要があります。
言う、
$myVar=$2-$3 (that is, $myVar=host1-event1)
これ以上分割操作を適用できません。したがって、プログラミングはありません。入力データしか読み取れません。はい、正規表現はPerl正規表現タイプです。
クエリを明確にしたかどうかわかりませんか?