有没有一个免费的解决scheme来计算一个Apache文件中的上下文根的数量?

我有一个Apache日志文件。 我需要报告有多less行(请求)来自特定的上下文根。 apache日志已经以斜杠开始,而上下文根就是第二个斜杠。

Apache日志示例:

11.222.33.44 - - [14/Feb/2013:00:27:33 -0600] "GET /lifecontent/monitor?test=siteseer&format=siteseer HTTP/1.1" 200 275 "-" "Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)" "SSL=on" 111.22.333.44 - - [14/Feb/2013:00:29:29 -0600] "GET /lc/Brokerage%20Manager/IDG%20Licensing%20and%20Appointment%20Process/IDG%20Franchise%20Reference%20Manual HTTP/1.1" 302 - "-" "(Windows NT)" "SSL=-" 

两个上下文根将是“/ lifecontent /”“/ lc”

不知道什么工具是最好的? 我对GUI或批处理解决scheme感到满意。

我主要是试图找出每个上下文根在一个Apache文件中使用的百分比。 (理想情况下,它可以一次search多个文件,但不是要求。)

你可以用一个简单的shell脚本来做到这一点:

 cut -d/ -f4 access.log | sort | uniq -c | sort -g 

cut命令提取第5个/ -delimited字段(即“上下文根”), sort | uniq -c sort | uniq -c然后统计每个事件的发生次数, sort -g按发生次数sort -g它们。

在我的networking服务器上运行这个:

  5477 misc 11130 bzr 32181 raspbian 35912 files 43020 sites 

我接受了mgorven的解决scheme,因为它使我朝着正确的方向发展了最终的解决scheme。 Afetr使用他的解决scheme,有时会有查询string值,有时上下文根没有结尾的斜杠。 因此“/ lc /”和“/ lc”和“/ lc?x = y”被计为“lc”。 所以我最终使用这个解决scheme:

 cut -d" " -f7 access.log | cut -d? -f1 | cut -d/ -f2 | sort | uniq -c | sort -g 

这将显示个人文件被访问和一个空行,如果只是“/”被访问。

我也使用UnxUtils.zip在窗口上执行此操作: http : //sourceforge.net/projects/unxutils 。 我需要提取的所有东西都被剪切,sorting,uniq。

谢谢你mgorven!