Linux统计访问前10的单词或IP

2021-09-11  本文已影响0人  后厂村村长

统计文件中出现次数最多的前10个单词

cat word.txt | sort | uniq -c | sort -k1,1nr | head -10
解析:

sort: 对单词进行排序;
uniq -c: 显示唯一的行,并在每行行首加上本行在文件中出现的次数;
sort -k1,1nr: 按照第一个字段,数值排序,且为逆序;
-k 1.2,1.2 这种表示“只”对第一个字段第二个字母进行排序。(如果你问“使用-k 1.2不行麽?”,也会出结果,但由于省略了End(排序截止位置)部分,就意味着你将对从第二个字母起到本域最后一个字符为止的字符串进行排序)。

统计accessLog中出现次数最多的前10个IP

cat access.log |grep -v '^$'| awk -F ' ' '{print $2}'| sort | uniq -c|sort -n -r|head -10
解析:

grep -v "^$"去除空行;
awk命令将行分割为多列,第1列用$1表示,第2列用$2表示,依次类推;awk -F ' ' '{print $2}' 表示用空格作为分隔符进行分割,打印出第2列;
sort 进行排序,默认是按照ascii码进行排序的;
uniq -c 统计相邻的行的重复数量,结果是类似 6 10.13.13.13,前面的数字代码重复的行数;
sort|uniq -c 统计重复的行数;
sort -n 是按照数值进行由小到大进行排序, -r 是表示逆序,-t 是指定分割符,-k 是执行按照第几列进行排序,示例:sort -nrk 1 -t ' '

上一篇下一篇

猜你喜欢

热点阅读