我正在对一个访问日志文件进行排序,试图找到任何具有请求和访问的唯一文件的行。我的日志文件采用这种格式:
66.249.75.4 - - [14/Dec/2015:08:25:18 -0600] "GET /robots.txt HTTP/1.1" 404 1012 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.75.4 - - [14/Dec/2015:08:25:18 -0600] "GET /~robert/class2.cgi HTTP/1.1" 404 1012 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
(so on and so forth...)
我的目标是找到这 14,000 多行中的任何一行,这些行访问了来自 Web 服务器的唯一文件(“GET/etc... etc...”
),并计算有多少行这些都存在。我想摆脱访问同一页面的任何这些调用,并且只计算那些不重复的调用。我是 linux 命令行的新手,我正在努力熟悉其中的一些命令及其功能。
我试过用 grep
尝试它,将 cat
输送到 sort -k 7 -u
, uniq
,和其他一些。这些似乎都没有给我预期的结果。
最佳答案
如果你只是在寻找计数,你可以使用:
cut -d' ' -f6-7 logs.txt | sort -u | wc -l
关于linux - 查找和计算在 Web 服务器上访问的唯一文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52921830/