對不起,我的英語不好。JAVA - 網絡日誌文件
我有一個120,000行Web服務器的日誌文件。輸入文件的
實施例:
10.160.0.10; 16.11.2011十二時56; /; - ; 「的Mozilla/5.0(Windows NT的5.1; RV:2.0)Gecko的/ 20100101火狐/ 4.0」 10.160 .0.100; 14.11.2011 7:22; /; - ;「Mozilla/5.0(Windows NT 5.1; rv:2.0)Gecko/20100101 Firefox/4.0」 10.160.0.100; 14.11.2011 10:45; /; - ; 「Mozilla/5.0(Windows NT 5.1; rv:2.0)Gecko/20100101 Firefox/4.0」 10.160.0.100; 14.11.2011 10:53; /; - ;「Mozilla/4.0(compatible; MSIE 8.0; Windows NT 5.1;三叉戟/ 4.0)」
我需要在第一線與IP在第二行 和比較的IP地址同時 將包含Web瀏覽器版本的最後一個框與第二行中的版本進行比較。 並與第三行第二行等等
如果第一IP是相同第二IP和在一起的第一版本是相同第二版本 然後添加對的行信息例如#1的端部(將要意味着它是第一個用戶)
如果IP或版本不同,則添加到第2行(第二個用戶)的末尾。
它根據IP地址和用戶代理字段的用戶(基於不同版本的網絡瀏覽器)。輸出中文件的
實施例:
10.160.0.10; 16.11.2011十二時56; /; - ; 「的Mozilla/5.0(Windows NT的5.1; RV:2.0)Gecko的/ 20100101火狐/ 4.0」;# 1 10.160.0.100; 14.11.2011 7:22; /; - ; 「的Mozilla/5.0(Windows NT的5.1; RV:2.0)Gecko的/ 20100101火狐/ 4.0」 #2 10.160.0.100; 14.11.2011 10: 45; /; - ;「Mozilla/5.0(Windows NT 5.1; rv:2.0)Gecko/20100101 Firefox/4.0」;#2 10.160.0.100; 14.11.2011 10:53; /; - ;「Mozilla/4.0兼容; MSIE 8.0; Windows NT的5.1;三叉戟/ 4.0)「;#3
你有任何想法如何做到這一點?
使用哪種方法?
謝謝你的幫助。
查找 「正則表達式」。這是做到這一點的一種方法。 - 這將是我的首選方式 – DThought
不相關,但在像Perl這樣的腳本語言中做這樣的事情會很麻煩。大概有3-4行代碼。 –
我認爲Microsoft Log Parser(http://technet.microsoft.com/en-us/scriptcenter/dd919274.aspx)將是這類工作的絕佳工具。 – Henrik