2009-10-23 46 views
1

我有一大堆loglines(或多或少沒有文檔),需要解析它們。解析本身不會是一個大問題,但首先我需要知道文件內有多少種不同的行。從輸入自動生成模式(和/或正則表達式)

除了我有像短錯誤一樣的真正不同的行,最多隻能在一些字段中有所不同的行,比如他們使用的證書的完整用戶名和一些數字,例如傳輸時間。

獲得一個生成的模式與差異/共同的東西關於一組相同的線會很好。

是否有任何工具可以做到這一點,並分析大量輸入和輸出所有行中的常見東西?

+0

相似:「如何檢測字符串列表中的常見子字符串」http://stackoverflow.com/questions/1410822/how-can-i-detect-common-substrings-in-a-list-of-字符串 – 2009-10-23 18:21:26

回答

0

我不知道任何這樣的工具。我可能只是打開文件,對它進行排序,並刪除重複類型的消息。

例如,如果您有:

 
Error while writing char 45 
Error while writing char 8 
Error while writing char 903 

我將其降低到

 
Error while writing char # 

我不知道你請求的工具是可行的。考慮這些錯誤消息:

 
I/O Error: couldn't open file abc.txt 
I/O Error: failed while writing to xyz.txt 
Database Error: couldn't open database MyDB 

什麼算法可以告訴你的是,第二個錯誤是一號的變化,但第三個錯誤是一種新的類型?

我認爲你必須手動完成,但排序會使它更容易。

+0

nope,有不同長度的字段,其他值等,不重複 - 每行都是uniq:/。 – 2009-10-23 17:14:28

+0

瞭解。我的意思是重複類型。我會更新我的答案。 – 2009-10-23 17:17:17

0

我想不出用正則表達式寫這個的方法。

但是,如何將日誌複製並粘貼到Excel中,然後對它們進行排序呢?我認爲應該更容易確定有多少種不同類型的消息。

或者你可以導入到Access或SQL之類的東西,然後你可以使用 SELECT DISTINCT進一步減少結果。