首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sort命令

sort命令

作者头像
cultureSun
发布2023-05-18 14:42:15
5730
发布2023-05-18 14:42:15
举报

简介

Linux sort 命令用于将文本文件内容加以排序,可针对文本文件的内容,以行为单位来排序(默认以ASCII编码作比较)。

详解

使用命令 sort --help查看使用方法:

┌──(root㉿kali)-[~]
└─# sort --help
Usage: sort [OPTION]... [FILE]...
  or:  sort [OPTION]... --files0-from=F
Write sorted concatenation of all FILE(s) to standard output.

With no FILE, or when FILE is -, read standard input.

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
  -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           shuffle, but group identical keys.  See shuf(1)
      --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
      --debug               annotate the part of the line used to sort,
                              and warn about questionable usage to stderr
      --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=KEYDEF          sort via a key; KEYDEF gives location and type
  -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
      --parallel=N          change the number of sorts run concurrently to N
  -u, --unique              with -c, check for strict ordering;
                              without -c, output only the first of an equal run
  -z, --zero-terminated     line delimiter is NUL, not newline
      --help     display this help and exit
      --version  output version information and exit

KEYDEF is F[.C][OPTS][,F[.C][OPTS]] for start and stop position, where F is a
field number and C a character position in the field; both are origin 1, and
the stop position defaults to the line's end.  If neither -t nor -b is in
effect, characters in a field are counted from the beginning of the preceding
whitespace.  OPTS is one or more single-letter ordering options [bdfgiMhnRrV],
which override global ordering options for that key.  If no key is given, use
the entire line as the key.  Use --debug to diagnose incorrect key usage.

SIZE may be followed by the following multiplicative suffixes:
% 1% of memory, b 1, K 1024 (default), and so on for M, G, T, P, E, Z, Y.

*** WARNING ***
The locale specified by the environment affects sort order.
Set LC_ALL=C to get the traditional sort order that uses
native byte values.

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation <https://www.gnu.org/software/coreutils/sort>
or available locally via: info '(coreutils) sort invocation'

Bash

参数说明

-b

忽略每行前面开始出的空格字符。

-c

检查文件是否已经按照顺序排序。

-d

排序时,处理英文字母、数字及空格字符外,忽略其他的字符。

-f

排序时,将小写字母视为大写字母。

-i

排序时,除了040至176之间的ASCII字符外,忽略其他的字符。

-m

将几个排序好的文件进行合并。

-M

将前面3个字母依照月份的缩写进行排序。

-n

依照数值的大小排序。

-u

意味着是唯一的(unique),输出的结果是去完重了的。

-o<输出文件>

将排序后的结果存入指定的文件。

-r

以相反的顺序来排序。

-t<分隔字符>

指定排序时所用的栏位分隔字符。

+<起始栏位>-<结束栏位>

以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

--help

显示帮助。

--version

显示版本信息。

[-k field1[,field2]]

按指定的列进行排序。

实例

┌──(root㉿kali)-[~/Desktop]
└─# cat test.txt   #输出test.txt内容
abc 12
Abc 11
231 2323
1900 abc
                                                                                                                
┌──(root㉿kali)-[~/Desktop]
└─# sort test.txt   #默认以第一列的值排序
1900 abc
231 2323
Abc 11
abc 12
                                                                                                                
┌──(root㉿kali)-[~/Desktop]
└─# sort -n test.txt 
Abc 11
abc 12
231 2323
1900 abc
                                                                                                                
┌──(root㉿kali)-[~/Desktop]
└─# sort -r test.txt   #反排序
abc 12
Abc 11
231 2323
1900 abc
                                                                                                                
┌──(root㉿kali)-[~/Desktop]
└─# sort -r test.txt -k 2    #以第二列的值进行反排序
1900 abc
231 2323
abc 12
Abc 11

Bash

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 详解
    • 参数说明
      • 实例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档