样例 Shell
cat logs/baidu.access.log | awk ‘{print $(NF-1)}’ | sort | uniq -c | sort -k 1 -n -r|head -10
关键字解析
- cat :展示/输出内容
- logs/baidu.access.log : 要展示/输入的文件.
- awk : 它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能
- ‘{print ${NF-1}}}’ : 打印access.log 的 倒数第二列
- $1 代表第一列 $number 代表第 number 列
- $NF 代表 总列数
- sort : 排序. 默认自然顺序排序
- uniq -c : 代表 去重. 只适用于相邻两行相同的情况.
- 一般与 sort 结合使用, 先排序后去重
- -u : 只显示唯一的记录行
- -c : 显示有重复记录的情况
- sort -k 1 -n -r : 对第一列按照纯数字逆序排序
- -f : 忽略大小写差异
- -b : 忽略最前面的空格符部分
- -M : 以月份名字来排序
- -n : 使用纯数字排序
- -r : 反向排序
- -u : 就是 uniq ,相同的数据中,仅出现一行代表
- -t : 分隔符 默认使用 Tab 键分割
- -k : 以哪个区间 (field) 来进行排序的意思
- head -10 显示前 10 列