• Shell常用命令之sort


    sort命令

    sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。

    语法

    sort (选项) (参数)

    选项

    -b:忽略每行前面开始出的空格字符;
    -d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;
    -f:排序时,将小写字母视为大写字母;
    -t<分隔字符>:指定排序时所用的栏位分隔字符;
    -c:检查文件是否已经按照顺序排序;
    -n:依照数值的大小排序;
    -M:将前面3个字母依照月份的缩写进行排序;
    -r:以相反的顺序来排序;
    -m:将几个排序号的文件进行合并;
    -k [n,m]:按照指定的字段范围排序。从第n个字段开始,到第m个字(默认到行尾);
    -o<输出文件>:将排序后的结果存入制定的文件;
    -u:忽略相同的行
    -i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符;
    +<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

    示例

    sort 命令默认是用每行开头的第一个字符来进行排序的,比如:

    [root@localhost ~]# sort /etc/passwd
    #排序用户信息文件
    abrt:x:173:173::/etc/abrt:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    …省略部分输出…

    如果想要反向排序,则使用“-r”选项,比如:

    [root@localhost ~]# sort -r /etc/passwd
    #反向排序
    vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    tcpdump:x:72:72::/:/sbin/nologin
    …省略部分输出…

    如果想要指定排序的字段,则需要使用"-t"选项指定分隔符,并使用"-k"选项指定字段号。假如我想要按照 UID 字段排序 /etc/passwd 文件,命令如下:

    [root@localhost ~]# sort -t":"-k 3,3 /etc/passwd
    #指定分隔符是":",以第三个字段开头,以第三个字段结尾排序,也就是只用第三个字段排序;当然,"-k"选项可以直接使用"-k 3",代表从第三个字段到行尾都排序(第一个字段先排序,如果一致,则第二个字段再排序,直到行尾)。
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    abrt:x:173:173::/etc/abrt:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    …省略部分输出…

    看起来好像很美,可是如果仔细看看,怎么 daemon 用户的 UID 是 2,反而排在了下面?这是因为 sort 默认是按照字符排序的,前面用户的 UID 的第一个字符都是 1,所以这么排序。要想按照数字排序,请使用"-n"选项,比如:

    [root@localhost ~]# sort -t":" -nk 3,3 /etc/passwd
    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/spod/lpd:/sbin/nologin
    ...省略部分输出...
  • 相关阅读:
    无穷字符串问题--CSDN上的面试题(原创)
    c语言:将二进制数按位输出
    构造和为指定值的表达式:±1±2±3±4±5=3 确定符号
    c语言:最长对称子串(3种解决方案)
    最长公共子串
    ie7下 滚动条内容不动问题
    沙盒密探——可实现的js缓存攻击
    yii2归档安装
    php 安装composer
    [转]-Android Studio 快捷键整理分享-SadieYu
  • 原文地址:https://www.cnblogs.com/guge-94/p/11978538.html
Copyright © 2020-2023  润新知