对不起,我的英语不好。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