zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    leetcode Super Ugly Number
    leetcode Find Median from Data Stream
    leetcode Remove Invalid Parentheses
    leetcode Range Sum Query
    leetcode Range Sum Query
    leetcode Minimum Height Trees
    hdu 3836 Equivalent Sets
    hdu 1269 迷宫城堡
    hud 2586 How far away ?
    poj 1330 Nearest Common Ancestors
  • 原文地址:https://www.cnblogs.com/tianzhiyi/p/5316059.html
Copyright © 2011-2022 走看看