zoukankan      html  css  js  c++  java
  • 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
    ...省略部分输出...
  • 相关阅读:
    使用树莓派3获取CPU温度
    使用树莓派控制继电器
    Darknet图像训练的步骤
    Faster-Rcnn图像识别训练的步骤
    Centos7中ELK集群安装流程
    近年来较流行的搜索引擎框架
    机器学习中,使用NMS对框取优
    当前Azure中国可使用的虚拟机的Size列表
    汉语词性对照表[北大标准/中科院标准]
    Linux中禁用THP(Transparent Huge Pages)
  • 原文地址:https://www.cnblogs.com/guge-94/p/11978538.html
Copyright © 2011-2022 走看看