zoukankan      html  css  js  c++  java
  • Linux之11——常用统计命令之sort

    sort是在Linux里非常常用的一个统计命令

    1 sort的工作原理

    sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

    其语法及常用参数格式:

    sort [-bcfMnrtk][源文件][-o 输出文件]
           补充说明:sort可针对文本文件的内容,以行为单位来排序。       
          参  数:
         -b   忽略每行前面开始出的空格字符。
         -c   检查文件是否已经按照顺序排序。
         -f   排序时,忽略大小写字母。
         -M   将前面3个字母依照月份的缩写进行排序。
         -n   依照数值的大小排序。
         -h     使用易读性数字(例如:2K、1G)排序
         -o   <输出文件>   将排序后的结果存入指定的文件。
         -r   以相反的顺序来排序。
         -t  <分隔字符>   指定排序时所用的栏位分隔字符。
         -k  选择以哪个区间进行排序。
       -v    按照版本排序
       -u   排序后删除重复行,等价于sort test1 | uniq
    sort -h
    $ cat sort_h
    60MB
    10
    1000KB
    20MB
    300KB
    5
    A
    40GB
    50KB
    $ cat sort_h|sort -h
    A
    5
    10
    50KB
    300KB
    1000KB
    20MB
    60MB
    40GB
    View Code

    sort -n

    $ cat sort_n
    01
    00
    0
    70
    78
    67
    23
    30
    09
    44002
    32010
    32102
    5743
    3306
    $ sort -n sort_n
    0
    00
    01
    09
    23
    30
    67
    70
    78
    3306
    5743
    32010
    32102
    44002
    View Code

    sort -t . -k 2  sort_t 

    $ cat sort_t
    1.2.3.4
    2.1.2.3
    3.3.4.2
    8.7.6.4
    6.4.9.7
    

    1SP2SP3SP4
    2SP1SP2SP3
    3SP3SP4SP2
    8SP7SP6SP4
    6SP4SP9SP7
    $ sort -t . -k 2 sort_t

    1SP2SP3SP4
    2SP1SP2SP3
    3SP3SP4SP2
    6SP4SP9SP7
    8SP7SP6SP4
    2.1.2.3
    1.2.3.4
    3.3.4.2
    6.4.9.7
    8.7.6.4

    View Code

     一个例子:

    复制代码
    $ last|grep -P '(d{1,3}.){3}d{1,3}'|awk '{S[$3]++} END{for(a in S) {print a,S[a]}}'|sort -k 2 -rn
    113.128.81.23 43
    113.118.184.151 22
    120.244.191.5 21
    112.10.50.241 20
    120.244.232.56 17
    124.74.76.126 16
    58.101.55.255 15
    115.236.175.131 15
    113.65.210.234 15
    223.71.133.42 14
    119.253.43.100 14
    111.199.189.52 14
    101.132.159.87 14
    221.219.101.182 13
    183.6.105.176 13
    115.199.241.187 12
    113.87.130.220 11
    111.23.244.189 11
    220.249.15.134 10
    119.131.106.244 10
    118.242.17.132 10
    61.149.222.113 9
    111.163.143.202 9
    103.27.26.3 9
    59.41.64.86 8
    49.66.146.59 8
    复制代码
     
     
  • 相关阅读:
    Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
    MyBatis 实现一对多有几种方式,怎么操作的?
    利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进 程的信息?
    哪个命令专门用来查看后台任务?
    什么是 MyBatis 的接口绑定?有哪些实现方式?
    什么是端到端微服务测试?
    我们如何在测试中消除非决定论?
    什么是持续监测?
    怎么使一个命令在后台运行?
    博客园样式美化(兼容为知笔记)
  • 原文地址:https://www.cnblogs.com/R-bear/p/15027219.html
Copyright © 2011-2022 走看看