2015-11-10 28 views
0

我想將粗體顯示的所有內容分組到分析器中。我如何分析多個句子並確保它們分組在一起?系統日誌需要Perl正則表達式

2013年5月1日9時43分零零秒INFO首席認證

「admin」用戶嘗試使用認證 Token_Auth」進行身份驗證。 用戶屬於安全域「SystemDomain.Default」
成功AUTHN_METHOD_SUCCESS驗證方法成功 company.admin公司聯繫wsnc1_2.def.comp.net
SystemDomain.default

+0

什麼是你正在尋找的模式?只用一行樣本輸入很難說清楚。 –

+0

用戶「admin」嘗試使用驗證器Token_Auth進行驗證「。 用戶屬於安全域「SystemDomain.Default」 – MEsquan

+0

在你的例子中:'Principal authentication/s +(。+?)\ s + Success AUTHN_METHOD_SUCCESS' – sln

回答

0

根據您的一個例子(註定要失敗,所有其他的例子),我會做到以下幾點:

  1. 記號化的日誌條目
  2. 刪除第一THR EE令牌
  3. 最後一個令牌之後刪除你想要的一切

示例腳本:

use strict; 
use warnings; 

while(<DATA>) 
{ 
    my @line = split; 
    splice(@line, 0,3); 
    my $line = join(' ', @line); 
    $line =~ s/Success.*//; 
    print $line; 
} 
exit(0); 

__DATA__ 
5/1/2013 9:43:00 INFO Principal authentication User "admin" attempted to authenticate using authenticator Token_Auth". The user belongs to security domain "SystemDomain.Default" Success AUTHN_METHOD_SUCCESS Authentication method success company.admin company Admin wsnc1_2.def.comp.net SystemDomain.default 
+0

難道你不想拼接前5個元素?此外,你假設一切都在一條線上,但我不確定這是否屬實。 (由於缺乏OP提供的信息,很難說)。 –