这是我的apache访问日志文件。我希望apache访问日志uniq计数网址。
function checkCollision(e: Event): void {
if (head_mc.hitTestObject(square2_mc)) {
velocity = 0;
trace("Collision detected!");
} else {
trace("No collision.");
velocity = 5;
}
}
stage.addEventListener(Event.ENTER_FRAME, checkCollision);
上面的文件我给了一个样本。日志文件不断增长 预期产出
$new = array($first,$second);
答案 0 :(得分:1)
我认为apache日志中可能存在一些拼写错误,但是如何:
$ grep -o 'abc/[^ 0-9]*/' apache.log | sort | uniq -c | sort -r
6 abc/index.php/site/siteContent/
5 abc/index.php/htmlrequest/htmlContent/
5 abc/index.php/Api/ApiContent/
3 abc/index.php/data/dataContent/
2 abc/index.php/contentapi/discontent/
1 abc/index.php/contentapi/
答案 1 :(得分:0)
这提取了第四个字段,它被假定为URL
cat logfile | awk -F' ' '{print $4}' | awk -F'/' '{print $2"/"$3"/"$4"/"$5}' | sort | uniq -c
答案 2 :(得分:0)
使用GNU awk for gensub():
$ awk '{cnt[gensub(/(([/][^/]+){4}[/]).*/,"\\1","",$4)]++} END{for (url in cnt) print url " - " cnt[url]}' file
/abc/index.php/contentapi/discontent/ - 3
/abc/index.php/data/dataContent/ - 3
/abc/index.php/site/siteContent/ - 6
/abc/index.php/Api/ApiContent/ - 5
/abc/index.php/htmlrequest/htmlContent/ - 5