样例 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 列