我有 >1m 行的 access.log 檔案。線的例子:
113.10.154.38 - - [27/May/2016:03:36:26 0200] "POST /index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&method=form&cid=20&6bc427c8a7981f4fe1f5ac65c1246b5f=cf6dd3cf1923c950586d0dd595c8e20b HTTP/1.1" 200 22 "-" "BOT/0.1 (BOT for JCE)" "-"
我需要決議日志行以計算 10 個最常見的 url,但我需要從 url 中洗掉查詢引數。沒有查詢引數我寫了這段代碼
awk '{print $7}' test.log | sort | uniq -c | sort -rn | \
head | awk '{print NR,"\b. URL:", $2,"\n Requests:", $1}'
但我不知道如何洗掉查詢引數并計算沒有引數的前 10 個最常見的 url 以獲得明確的請求頂部。
uj5u.com熱心網友回復:
使用該sub()函式從字串中洗掉模式。
在提取欄位以對唯一值進行排序和計數時,您還需要執行此操作。
awk '{sub(/\?.*/, "", $7); print $7}' test.log | sort | uniq -c | sort -rn | ...
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/473278.html
上一篇:如何在我的網站網址中包含字串?
