• sort命令与cat区别


    25.1 由于sort默认是把结果按照行排序后输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile
    [root@shiyan a]# cat a.txt
    aaaaaa
    [root@shiyan a]# sort a.txt >c.txt ------------- 在重定向前会自动创建c.txt这个文件。
    [root@shiyan a]# cat c.txt
    aaaaaa

    25.2 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
    [rocrocket@rocrocket programming]$ cat seq.txt
    banana
    apple
    pear
    orange
    [rocrocket@rocrocket programming]$ sort seq.txt
    apple
    banana
    orange
    pear

    25.3 sort进行排序后就会将相同的行排到一起去,而 -u 参数就会将重复的行去掉,只保留一行
    [rocrocket@rocrocket programming]$ cat seq.txt
    banana
    apple
    pear
    orange
    pear
    [rocrocket@rocrocket programming]$ sort seq.txt
    apple
    banana
    orange
    pear
    pear
    [rocrocket@rocrocket programming]$ sort -u seq.txt
    apple
    banana
    orange
    pear -------------------- 只保留一行

    25.4 sort的-r选项
    sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了。

    [rocrocket@rocrocket programming]$ cat number.txt
    1
    3
    5
    2
    4
    [rocrocket@rocrocket programming]$ sort number.txt
    1
    2
    3
    4
    5
    [rocrocket@rocrocket programming]$ sort -r number.txt
    5
    4
    3
    2
    1


    25.5 sort的-o选项,当重定向到自己时,一定要加-o参数,否则会被清空原文件。

    由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。
    但是,如果你想把排序结果输出到原文件中,用重定向可就不行了。

    [rocrocket@rocrocket programming]$ sort -r number.txt > number.txt
    [rocrocket@rocrocket programming]$ cat number.txt
    [rocrocket@rocrocket programming]$
    看,竟然将number清空了。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    就在这个时候,-o选项出现了,它成功的解决了这个问题,让你放心的将结果写入原文件。这或许也是-o比重定向的唯一优势所在。
    [rocrocket@rocrocket programming]$ cat number.txt
    1
    3
    5
    2
    4
    [rocrocket@rocrocket programming]$ sort -r number.txt -o number.txt
    [rocrocket@rocrocket programming]$ cat number.txt
    5
    4
    3
    2
    1

    25.6, -n 参数。按照数值大小来排序而不是首字母的ASCII码
    由于sort是按照首字母的ascii码来排序的,所以当需要按照数字的大小来排序时会错乱
    [rocrocket@rocrocket programming]$ cat number.txt
    1
    10
    19
    11
    2
    5
    [rocrocket@rocrocket programming]$ sort number.txt
    1
    10
    11
    19
    2
    5
    [rocrocket@rocrocket programming]$ sort -n number.txt
    1
    2
    5
    10
    11
    19
    默认是采用升序的来显示的。当需要采用降序就用:sort -nr xxx.txt 来显示

    25.6,-k 截取每行的第几个部分
    facebook.txt按照公司人数排序 ,人数相同的按照员工平均工资升序排序(-k :域,区域,第几个区域):
    [root@FDMdevBI opt]# sort -n -t ' ' -k2 -k3 testsort.txt
    guge 50 3000
    sohu 100 4500
    baidu 100 5000
    google 110 5000

    25.7,配合 uniq -c 排序后统计相同的行的行数
    [root@bogon tmp]# sort aa |uniq -c
    1 111111111111111111
    1 11111111111111111111111
    1 222222222222222222
    1 22222222222222222222222
    1 444444444444444444
    1 444444444444444444444444444
    1 55555555555555555555555
    1 777777777777777777
    1 77777777777777777777777

    25.8,-u 去掉重复的行
    [root@bogon tmp]# cat b
    1
    2
    2
    2
    1
    1
    3
    31
    32
    42
    42
    62
    32
    2
    2
    1
    [root@bogon tmp]# sort b
    1
    1
    1
    1
    2
    2
    2
    2
    2
    3
    31
    32
    32
    42
    42
    62
    [root@bogon tmp]# sort -u b
    1
    2
    3
    31
    32
    42
    62
    [root@bogon tmp]# sort b |uniq -c
    4 1
    5 2
    1 3
    1 31
    2 32
    2 42
    1 62

    [root@bogon tmp]# sort b
    1
    1
    1
    1
    17
    2
    2
    2
    2
    2
    21
    3
    31
    32
    32
    42
    42
    62
    [root@bogon tmp]# sort -n b |uniq -c
    4 1
    5 2
    1 3
    1 17
    1 21
    1 31
    2 32
    2 42

  • 相关阅读:
    这是一段Java程序员写给最爱的老婆的代码。
    第一次来写博客,这里可以记录很多故事。
    转 JavaScript前端和Java后端的AES加密和解密
    java webservice浏览器测试地址
    Eclipse4.5在线安装Aptana插件及配置代码提示教程
    彻底的卸载干净oracle 11g(转)
    oracle查看编码以及修改编码(转)
    关于AngularJs数据递归呈现的实现的几种方式
    ionic的ngModel指令失效
    AngularJS 自定义指令详解
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/8479788.html
Copyright © 2020-2023  润新知