目前我正在运行这样的命令,以获取请求最多的内容:
grep "17\/Jul\/2011" other_vhosts_access.log | awk '{print $8}' | sort | uniq -c | sort -nr
Run Code Online (Sandbox Code Playgroud)
我现在想查看用户代理字符串,但问题是它们包含几个空格。这是一个典型的日志文件行。UA 是用引号分隔的最后一部分:
example.com:80 [ip] - - [17/Jul/2011:23:59:59 +0100] "GET [url] HTTP/1.1" 200 6449 "[referer]" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30"
Run Code Online (Sandbox Code Playgroud)
有没有比 awk 更好的工具呢?
Cal*_*leb 22
如果该格式是一致的并且该字段确实用双引号括起来,则可以使用 awk 或 cut with"作为字段分隔符:
awk -F\" '{print $6}'
Run Code Online (Sandbox Code Playgroud)
或者:
cut -d\" -f 6
Run Code Online (Sandbox Code Playgroud)