zoukankan      html  css  js  c++  java
  • Linux常用统计命令之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
     
     
  • 相关阅读:
    【Java每日一题】20161027
    【Java每日一题】20161026
    【Java每日一题】20161025
    【Java每日一题】20161024
    【Java每日一题】20161021
    【Java每日一题】20161020
    【Java每日一题】20161019
    Xen们和Open Stack们
    Linux内存管理子系统
    Python学习资料收集
  • 原文地址:https://www.cnblogs.com/feng0815/p/13732662.html
Copyright © 2011-2022 走看看