• linux命令---sort


    行的排序命令sort:

      1.  sort命令行选项:

    选项 描述
    -t 字段之间的分隔符
    -f 基于字符排序时忽略大小写
    -k 定义排序的域字段,或者是基于域字段的部分数据进行排序
    -m 将已排序的输入文件,合并为一个排序后的输出数据流
    -n 以整数类型比较字段
    -o outfile 将输出写到指定的文件
    -r 倒置排序的顺序为由大到小,正常排序为由小到大
    -u 只有唯一的记录,丢弃所有具有相同键值的记录
    -b 忽略前面的空格


       2.  sort使用实例:
        提示:在下面的输出结果中红色标注的为第一排序字段,后面的依次为紫、绿。
        /> sed -n '1,5p' /etc/passwd > users
        /> cat users
        root:x:0:0:root:/root:/bin/bash
        bin:x:1:1:bin:/bin:/sbin/nologin
        daemon:x:2:2:daemon:/sbin:/sbin/nologin
        adm:x:3:4:adm:/var/adm:/sbin/nologin
        lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

        #-t定义了冒号为域字段之间的分隔符,-k 1指定基于第一个字段正向排序(字段顺序从1开始)。
        /> sort -t':' -k 1 users
        adm:x:3:4:adm:/var/adm:/sbin/nologin
        bin:x:1:1:bin:/bin:/sbin/nologin
        daemon:x:2:2:daemon:/sbin:/sbin/nologin
        lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
        root:x:0:0:root:/root:/bin/bash

        #还是以冒号为分隔符,这次是基于第三个域字段进行倒置排序。
        /> sort -t':' -k 3r users
        lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
        adm:x:3:4:adm:/var/adm:/sbin/nologin
        daemon:x:2:2:daemon:/sbin:/sbin/nologin
        bin:x:1:1:bin:/bin:/sbin/nologin
        root:x:0:0:root:/root:/bin/bash

        #先以第六个域的第2个字符到第4个字符进行正向排序,再基于第一个域进行反向排序。
        /> sort -t':' -k 6.2,6.4 -k 1r users
        bin:x:1:1:bin:/bin:/sbin/nologin
        root:x:0:0:root:/root:/bin/bash
        daemon:x:2:2:daemon:/sbin:/sbin/nologin
        lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
        adm:x:3:4:adm:/var/adm:/sbin/nologin

        #先以第六个域的第2个字符到第4个字符进行正向排序,再基于第一个域进行正向排序。和上一个例子比,第4和第5行交换了位置
        /> sort -t':' -k 6.2,6.4 -k 1 users
        bin:x:1:1:bin:/bin:/sbin/nologin
        root:x:0:0:root:/root:/bin/bash
        daemon:x:2:2:daemon:/sbin:/sbin/nologin
        adm:x:3:4:adm:/var/adm:/sbin/nologin
        lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

        #基于第一个域的第2个字符排序
        /> sort -t':' -k 1.2,1.2 users    
     
       daemon:x:2:2:daemon:/sbin:/sbin/nologin
        adm:x:3:4:adm:/var/adm:/sbin/nologin
        bin:x:1:1:bin:/bin:/sbin/nologin
        root:x:0:0:root:/root:/bin/bash
        l
    p:x:4:7:lp:/var/spool/lpd:/sbin/nologin


        #基于第六个域的第2个字符到第4个字符进行正向排序,-u命令要求在排序时删除键值重复的行。
        /> sort -t':' -k 6.2,6.4 -u users
        bin:x:1:1:bin:/bin:/sbin/nologin
        root:x:0:0:root:/root:/bin/bash
        daemon:x:2:2:daemon:/sbin:/sbin/nologin
        adm:x:3:4:adm:/var/adm:/sbin/nologin

        /> cat /etc/passwd | wc -l  #计算该文件中文本的行数。
        39
        /> sed -n '35,$p' /etc/passwd > users2  #取最后5行并输出到users2中。
        /> cat users2
        sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
        mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
        pulse:x:496:494:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
        gdm:x:42:42::/var/lib/gdm:/sbin/nologin
        stephen:x:500:500:stephen:/home/stephen:/bin/bash

        #基于第3个域字段以文本的形式排序
        /> sort -t':' -k 3 users2
        mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
        gdm:x:42:42::/var/lib/gdm:/sbin/nologin
        pulse:x:496:494:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
        stephen:x:500:500:stephen:/home/stephen:/bin/bash
        sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

        #基于第3个域字段以数字的形式排序
        /> sort -t':' -k 3n users2
        mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
        gdm:x:42:42::/var/lib/gdm:/sbin/nologin
        sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
        pulse:x:496:494:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
        stephen:x:500:500:stephen:/home/stephen:/bin/bash

        #基于当前系统执行进程的owner名排序,并将排序的结果写入到result文件中
        /> ps -ef | sort -k 1 -o result

  • 相关阅读:
    数组
    Java读取键盘输入
    Java不同类型字符转换String/int/Float/////
    微信公众号第三方验证的代码实现
    Debian Tips【在Debian下使用dos2unix、unix2dos、ifconfig、Adobe Flash Player、蓝牙音响等工具】
    数组的三种方式总结 多维数组的遍历 Arrays类的常用方法总结
    java基本数据类型总结 类型转换 final关键字的用法
    Maven通解
    IDEA——错误: 找不到或无法加载主类 com.Main
    Docker安装mysql,redis,mongodb数据库,docker常用命令,以及更换阿里镜像地址
  • 原文地址:https://www.cnblogs.com/tianzhiyi/p/5316059.html
Copyright © 2020-2023  润新知