美文网首页
Linux命令日日说(二十八)-- sort

Linux命令日日说(二十八)-- sort

作者: spt_genius | 来源:发表于2020-04-12 11:57 被阅读0次

sort


语法

sort [options] file

很简单却是很难玩精的一条命令,设计之初可能就考虑了很多。


参数

  • -b | --ignore-leading-blanks

    在每行中查找排序键时忽略前导空格。默认情况下,空白是空格或制表符,但 LC_CTYPE 区域设置可以更改此值。注意:区域设置的排序规则可能会忽略空白,但如果没有此选项,空白对于在带有-k选项的键中指定的字符位置将非常重要。

  • -c | --check | --check=diagnose-firt

    检查给定文件是否已排序:如果未全部排序,则打印包含第一个无序行的诊断,并以1状态退出。否则,退出成功。最多只能给出一个输入文件。

  • -C | --check=quiet | --check=slient

    如果给定文件已排序,则成功退出,否则退出并返回状态1。最多只能给出一个输入文件。这就像-c,只是它不打印诊断。

  • -d | --dictinary-order

    按电话簿顺序排序:排序时忽略除字母、数字和空格以外的所有字符。默认情况下,字母和数字是 ASCII 的字母和数字,空白是空格或制表符,但是 LC_CTYPE 语言环境可以更改这一点。

  • -f | --ignore-case

    不区分大小写。在进行比较时,将小写字符折叠为等效的大写字符,以便bB排序为相等。LC_CTYPE 区域设置确定字符类型。当与--unique一起使用时,那些小写的等价行将被丢弃。(目前还没有办法扔掉大写的等价物。(任何——倒数只会影响最终结果,在扔掉之后。)

  • -g | --general-numeric-sort | --sort=general-numeric

    按数字排序,将每行的前缀转换为长双精度浮点数。不报告溢出、下溢或转换错误。使用以下排序序列:

    • 不以数字开头的行(都被认为是相等的)。
    • 以一致但与机器相关的顺序排列的NaNs(在IEEE浮点运算中为“非数字”值)。
    • 负无穷大。
    • 以升序数字顺序排列的有限数(其中-0和+0相等)
    • 正无穷大。

    只有在没有其他选项的情况下才使用此选项;它比--数字排序(-n)慢得多,并且在转换为浮点时可能丢失信息。

  • -h | --human-numeric-sort | --sort=human-numeric

    按数字顺序排序,首先按数字符号(负号、零号或正号)排序;然后按 SI (Systeme International国际单位制)后缀(空后缀或kK后缀或MGTPEZY后缀之一)排序;最后按数值排序。例如,1023M1G 之前排序,因为M(mega)在G(giga)之前作为 SI 后缀。

  • -i | --ignore-nonprinting

    忽略非打印字符。LC_CTYPE 区域设置确定字符类型。如果还提供了更强大的--dictionary order(-d)选项,则此选项无效。

  • -m | --merge

    通过将给定文件作为一个组进行排序来合并它们。每个输入文件必须始终单独分类。它总是以排序而不是合并的方式工作;提供合并是因为它在工作的情况下速度更快。

  • -M | --month-sort | --sort=month

    一个初始字符串,由任意数量的空格组成,后跟一个月名称缩写,转换为大写,并按 JAN < FEB < ... < DEC。无效名称低于有效名称。LC_TIME locale类别确定月份拼写。默认情况下,空白是空格或制表符,但 LC_CTYPE 区域设置可以更改此值。

  • -n | --numeric-sort | --sort=numeric

    按数字排序。数字从每一行开始,由可选空格、可选-符号和可能由数千个分隔符分隔的零个或多个数字组成,可选后跟小数点字符和零个或多个数字。空数字被视为0LC_NUMERIC 区域设置指定小数点字符和千位分隔符。默认情况下,空白是空格或制表符,但 LC_CTYPE 区域设置可以更改此值。比较准确;没有舍入误差。无法识别前导+或指数表示法。要以数字方式比较这些字符串,请使用--general-numeric-sort(-g)选项。

  • -r | --reverse

    反转比较结果,使键值越大的行在输出中出现得越早,而不是越晚。

  • -R | --random-sort | --sort=random

    通过对输入键进行哈希排序,然后对哈希值进行排序。随机选择散列函数,确保它没有冲突,以便不同的键具有不同的散列值。这类似于输入的随机排列,只是具有相同值的键排序在一起。如果指定了多个随机排序字段,则对所有字段使用相同的随机哈希函数。要对不同字段使用不同的随机哈希函数,可以多次调用sort。哈希函数的选择受--random-source选项的影响。

  • --sort=WORD

    排序命令,上面命令中--sort=的都是。多项选择,看你个人习惯。

  • -V | --version-sort

    按版本名称和编号排序。它的行为类似于标准排序,只是每一个十进制数字序列在数字上被视为一个索引/版本号。


Example

  • sort

    标准排序按照字幕顺序。

    root@5ca8dbe55d8d:/test# cat file1
    line1
    line2
    line3
    
    line4
    line5
    root@5ca8dbe55d8d:/test# cat file1 | sort
    
    line1
    line2
    line3
    line4
    line5
    
  • sort -k 6 -n

    显示系统进程,以常驻部分的大小(RSS字段)顺序列出。

    root@5ca8dbe55d8d:/test# ps aux | sort -k 6 -n
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root       444  0.0  0.0  18616   500 pts/0    R+   08:04   0:00 /bin/bash
    root       443  0.0  0.1  34404  2824 pts/0    R+   08:04   0:00 ps aux
    root         1  0.0  0.1  18616  3456 pts/0    Ss   04:59   0:00 /bin/bash
    
  • sort -n -r file1

    反转排序数字。

    root@e0d7f2da343a:/# sort -n -r file1
    6
    5
    4
    3
    2.
    1
    root@e0d7f2da343a:/# cat file1
    1
    2.
    3
    4
    5
    6
    root@e0d7f2da343a:/#
    
  • sort -t : -n -k 5b,5 -k 3,3 /etc/passwd

    对第五个字段上的密码文件进行排序,并忽略任何前导空格。对字段3中数字用户ID的字段5中的值相等的行进行排序。字段用“:”分隔。

    root@e0d7f2da343a:/# sort -t : -n -k 5b,5 -k 3,3 /etc/passwd
    _apt:x:100:65534::/nonexistent:/usr/sbin/nologin
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
    list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
    backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    games:x:5:60:games:/usr/games:/usr/sbin/nologin
    irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
    lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
    mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
    man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
    news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
    nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
    proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
    root:x:0:0:root:/root:/bin/bash
    sync:x:4:65534:sync:/bin:/bin/sync
    sys:x:3:3:sys:/dev:/usr/sbin/nologin
    uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
    www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
    

相关文章

  • Linux命令日日说(二十八)-- sort

    sort 语法 很简单却是很难玩精的一条命令,设计之初可能就考虑了很多。 参数 -b | --ignore-lea...

  • 常用命令: sort学习笔记

    本文的sort命令是GNU版本(8.22), 和BSD的sort不同 sort是我最常用Linux命令之一,它的功...

  • awk命令

    下文来自:美团 吴孟达更多AWK命令请参考:Linux awk 命令扩展:linux sort,uniq,cut,...

  • Linux命令学习之:sort命令

    Linux命令学习之:sort命令 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如...

  • linux命令 - sort

    功能 sort or merge records (lines) of text and binary files

  • sort 命令详解

    在linux系统使用过程中,提供了sort排序命令,支持常用的排序功能。 常用参数 sort命令支持很多参数,常用...

  • PHP高手进阶指南

    Linux常用命令 grep、awk、sed、sort、uniq、ps、df Linux系统性能分析 vmstat...

  • sort命令讲解

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

  • Linux命令日日说(一)-- ls

    ls 语法 ls [选项] [参数] 参数 -a, –all 列出目录下所有的内容,包含'.'(当前目录)和'.....

  • Linux命令日日说(十二)-- diff

    diff 语法 一行一行的比较文件,,是不是感觉Torvalds也复用了些什么? 参数 -i --ignore-c...

网友评论

      本文标题:Linux命令日日说(二十八)-- sort

      本文链接:https://www.haomeiwen.com/subject/ifvkmhtx.html