• Linux sort命令使用方法


      sort命令在Linux中主要用于对文件/字符串进行排序,并将排序结果输出。sort命令输入可以是指定的文件或数据流。本文主要介绍sort命令的基本语法和常见使用实例。

    sort命令语法

      sort命令格式:sort [选项] 文件名

      选项:

     -n:按数字排序。默认是以ASCII值进行排序。
     -t:指定分隔符。默认分隔符是空格或者tab键分隔
     -b:使用域进行分类,忽略前面空格。
     -r:逆向排序
     -u:删除所有重复行
     -o:后面跟文件名,存储sort输出结果。主要是可以实现原地置换。比如sort file.txt -o file.txt
     -c:判断文件是否已经分类
     -m:合并两个分类文件

      选项使用说明:

    (1)-n选项,按照数字进行排序。默认情况下sort命令是以ASCII值进行排序。下面查看sort不带参数n和带参数n的执行情况。

    $ echo -e "123
    26
    3" |sort
    123
    26
    3
    $ echo -e "123
    26
    3" |sort -n
    3
    26
    123

    (2)-r选项,以降序排序输出。默认情况下是以升序输出。

    $ echo -e "123
    26
    3" |sort -nr
    123
    26
    3

    (3)-u选项,去掉重复行,相当于uniq命令。

    $ echo -e "123
    26
    26
    3
    123" |sort -u
    123
    26
    3

    (4)-c选项,判断文件是否已经分类,如果已分类,不输出内容。如果未分类,提示无序。

    $ echo -e "12
    36
    45" |sort -nc
    $ echo -e "12
    36
    5" |sort -nc
    sort:-:3:无序: 5

      说明:例子中带参数-n表示以整数排序是否有序。

    (5)-t选项,指定分隔符。默认情况下sort命令分隔符是以空格或者多个空格做为分隔符。

    $ echo -e "Java:12
    Python:3
    Ruby:21" | sort -t ':' -nrk2
    Ruby:21
    Java:12
    Python:3

    (6)-o选项。后面跟文件名,保存sort输出结果。主要是可以实现原地置换。

    $sort -t':' -nrk3 file.txt -o file.xt

    sort命令典型实例

    (1)文件中行分隔符为冒号":",要求先按第三列数字大小排序,再按照第一列数字大小排序,结果以降序输出

    $ echo -e "1:Python:15
    2:Python:5
    3:Ruby:25
    4:Python:15" | sort -t':' -k3 -k1 -nr
    3:Ruby:25
    4:Python:15
    1:Python:15
    2:Python:5

     (2)将文件c.txt中的内容按照第一列内容进行去重。

    ADD:USER="123";
    MOD:USER="123";
    ADD:USER="321";
    LST:USER="123";
    ADD:USER="321";
    LST:USER="456";
    MOD:USER="789";

    执行命令:cat c.txt | sort -t':' -k1,1 -u

    $ cat c.txt |sort -t':' -k1,1 -u
    ADD:USER="123";
    LST:USER="123";
    MOD:USER="123";

    小结

      sort命令基本用法和常用实例大概就是这些了。。遇到排序相关问题就可以使用sort解决啦。。如果生疏了,就来这里看看。。

  • 相关阅读:
    《ASP.NET Core 6框架揭秘》读者支持
    [LeetCode] 1309. Decrypt String from Alphabet to Integer Mapping 解码字母到整数映射
    上周热点回顾(6.206.26)
    上周热点回顾(6.277.3)
    国运之争 功在当下
    springboot~starter包的制作
    springboot~MyBatisPlus中使用@TableField完成字段自动填充
    springboot~加快tomcat启动securerandom.source
    springboot~没有启动类项目的单元测试
    Linux恶意挖矿软件SkidMap分析——伪造CPU占用
  • 原文地址:https://www.cnblogs.com/linyfeng/p/6960867.html
Copyright © 2020-2023  润新知