zoukankan      html  css  js  c++  java
  • linux-sort

    sort 对文本文件的行进行排序

    sort --help

    [root@node0 tmp]# sort --help

    Usage: sort [OPTION]... [FILE]...

    or: sort [OPTION]... --files0-from=F

    Write sorted concatenation of all FILE(s) to standard output.

     

    Mandatory arguments to long options are mandatory for short options too.

    Ordering options: 排序选项

     

    -b, --ignore-leading-blanks ignore leading blanks 忽略排序字段或关键字中开头的空格

    -d, --dictionary-order consider only blanks and alphanumeric characters在关键字中只考虑[a-zA-Z0-9]字符

    -f, --ignore-case fold lower case to upper case characters将关键字中的小写字母折合成大写字母    

    -g, --general-numeric-sort compare according to general numerical value按照通常的数字值顺序作比较

    -i, --ignore-nonprinting consider only printable characters 只考虑可打印字符

    -M, --month-sort compare (unknown) < `JAN' < ... < `DEC'

    -h, --human-numeric-sort compare human readable numbers (e.g., 2K 1G)

    -n, --numeric-sort compare according to string numerical value按照字符串的数值顺序比较

    -R, --random-sort sort by random hash of keys

    --random-source=FILE get random bytes from FILE

    -r, --reverse reverse the result of comparisons 反向排序,默认升序

    --sort=WORD sort according to WORD:

    general-numeric -g, human-numeric -h, month -M,

    numeric -n, random -R, version -V

    -V, --version-sort natural sort of (version) numbers within text

     

    Other options:其他选项

     

    --batch-size=NMERGE merge at most NMERGE inputs at once;

    for more use temp files

    -c, --check, --check=diagnose-first check for sorted input; do not sort

    -C, --check=quiet, --check=silent like -c, but do not report first bad line

    --compress-program=PROG compress temporaries with PROG;

    decompress them with PROG -d

    --files0-from=F read input from the files specified by

    NUL-terminated names in file F;

    If F is - then read names from standard input

    -k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2 设置排序的key ,与-t合用,默认整行比较

    (default end of line)

    -m, --merge merge already sorted files; do not sort

    -o, --output=FILE write result to FILE instead of standard output

    -s, --stable stabilize sort by disabling last-resort comparison

    -S, --buffer-size=SIZE use SIZE for main memory buffer

    -t, --field-separator=SEP use SEP instead of non-blank to blank transition 设置分隔符

    -T, --temporary-directory=DIR use DIR for temporaries, not $TMPDIR or /tmp;

    multiple options specify multiple directories

    -u, --unique with -c, check for strict ordering; 和-c一起,严格排序

    without -c, output only the first of an equal run 没有-c,去除重复行

    -z, --zero-terminated end lines with 0 byte, not newline

    --help display this help and exit

    --version output version information and exit

    示例

    准备文件

    [root@node0 tmp]# cat passwd

    1 root:x:0:0:root:/root:/bin/bash

    2 bin:x:1:1:bin:/bin:/sbin/nologin

    3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

    4 adm:x:3:4:adm:/var/adm:/sbin/nologin

    5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    6 sync:x:5:0:sync:/sbin:/bin/sync

    7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    8 halt:x:7:0:halt:/sbin:/sbin/halt

    9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    10 uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    sort 不加参数,按照整行从前往后,比较ascii,升序

    [root@node0 tmp]# sort passwd

    10 uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    1 root:x:0:0:root:/root:/bin/bash

    2 bin:x:1:1:bin:/bin:/sbin/nologin

    3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

    4 adm:x:3:4:adm:/var/adm:/sbin/nologin

    5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    6 sync:x:5:0:sync:/sbin:/bin/sync

    7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    8 halt:x:7:0:halt:/sbin:/sbin/halt

    9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    -t –k 指定分隔符,比较key

    [root@node0 tmp]# sort -t ' ' -k 2 passwd

    4 adm:x:3:4:adm:/var/adm:/sbin/nologin

    2 bin:x:1:1:bin:/bin:/sbin/nologin

    3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

    8 halt:x:7:0:halt:/sbin:/sbin/halt

    5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    1 root:x:0:0:root:/root:/bin/bash

    7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    6 sync:x:5:0:sync:/sbin:/bin/sync

    10 uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    -r 反向排序

    [root@node0 tmp]# sort -t ' ' -k 2 -r passwd

    10 uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    6 sync:x:5:0:sync:/sbin:/bin/sync

    7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    1 root:x:0:0:root:/root:/bin/bash

    9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    8 halt:x:7:0:halt:/sbin:/sbin/halt

    3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

    2 bin:x:1:1:bin:/bin:/sbin/nologin

    4 adm:x:3:4:adm:/var/adm:/sbin/nologin

    -u 去除重复行

    [root@node0 tmp]# sort -t ' ' -k 2 -r -u passwd

    10 uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

    6 sync:x:5:0:sync:/sbin:/bin/sync

    7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    1 root:x:0:0:root:/root:/bin/bash

    9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    8 halt:x:7:0:halt:/sbin:/sbin/halt

    3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

    2 bin:x:1:1:bin:/bin:/sbin/nologin

    4 adm:x:3:4:adm:/var/adm:/sbin/nologin

    -n 以数字比较,防止10比1小这种

    [root@node0 tmp]# sort -t ' ' -k 1 -n passwd

    1 root:x:0:0:root:/root:/bin/bash

    2 bin:x:1:1:bin:/bin:/sbin/nologin

    3 daemon:x:2:2:daemon:/sbin:/sbin/nologin

    4 adm:x:3:4:adm:/var/adm:/sbin/nologin

    5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

    6 sync:x:5:0:sync:/sbin:/bin/sync

    7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

    8 halt:x:7:0:halt:/sbin:/sbin/halt

    9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

    10 uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

     

     

  • 相关阅读:
    duplicate symbols for architeture arm64 linker command failed with code 1(use-c to see invocation)
    Operation not permitted
    [笔试]常考算法
    过滤ST/退市股票
    python动态调用函数
    dataFrame 切片操作
    DataFrame概念与创建
    DataFrame 加减乘除
    DataFrame查找
    DataFrame操作
  • 原文地址:https://www.cnblogs.com/jeancheng/p/13066866.html
Copyright © 2011-2022 走看看