【注】具体详解参见 man 手册和 info 手册。

1. 简介

sort 命令用于对给定的文件中的行进行排序并写到标准输出上。如果没有给定文件或者给定的文件名为 - ,则从标准输入读取数据。

2. 格式

1
2
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F

其中,OPTION 指定选项参数,FILE 指定文件名,--files0-from 指定文件名分隔符为全零字节(ASCII NUL)。

3. 选项

选项参数 说明
-b, --ignore-leading-blanks 忽略行数据开头的空格
-d, --dictionary-order 排序比较字符只考虑空格、字母和数字
-f, --ignore-case 将小写字母折合为大写字母进行排序比较
-g, --general-numeric-sort 按照通常的字符数值进行排序比较
-i, --ignore-nonprinting 仅考虑可打印字符
-M, --month-sort 按 (unknown) < ‘JAN’ < \cdots < ‘DEC’ 规则(月份大小)进行排序比较
-h, --human-numeric-sort 按照人眼可读的数值大小(带数量级字母)进行排序比较(比如 3K < 2M < 1G)
-n, --numeric-sort 按照字符串的数值大小进行排序比较
-R, --random-sort 按随机顺序输出(对于相同的行会进行分组)
--random-source=FILE 从文件 FILE 中获取随机种子
-r, --reverse 翻转排序顺序
--sort=WORD 按照 WORD 指定的规则进行排序比较(WORD 可取值有:general-numeric 、human-numeric 、month 、numeric 、random 、version;依次等价于 -g 、-h 、-M 、-n 、-R 、-V 选项)
-V, --version-sort 按照版本信息进行排序比较
-c, --check, --check=diagnose-first 检查输入数据是否有序(不对数据进行排序操作)
-C, --check=quiet, --check=silent 检查输入数据是否有序但不输第一个导致无序的行信息
--debug 注释出用于排序的部分,并给出一些警告信息
--files0-from=F 从文件 F 中读取文件名作为输入文件,F 中的文件名使用全零字节(ASCII NUL)作为分隔符;如果 F 为 - 则从标准输入读取文件名
-k pos1[,pos2], --key=pos1[,pos2] 指定用于排序的行文本字段(一行文本中的字段从左到右从 1 开始计数)
若未给定 pos2,则默认到最后一个字段
-m, --merge 归并多个已经有序的文件后输出
-o FILE, --output=FILE 将结果写入 FILE 文件而不是标准输出
-s, --stable 通过禁用最后的再分类比较来稳定排序
-S SIZE, --buffer-size=SIZE 指定主存排序缓存大小为 SIZE
-t SEP, --field-seperator=SEP 指定 SEP 作为字段分隔符而不是空格
-T DIR, --temporary-directory=DIR 指定 DIR 作为临时空间目录取代默认的 $TMPDIR/tmp
--parallel=N 指定并发排序数为 N
-u, --unique -c 合用,检查是否严格有序;不与 -c 合用,输出第一个导致不严格有序的行信息
-z, --zero-terminated 指定行界定符为全零字节(ASCII NUL)而不是换行符
--help 显示帮助信息
--version 显示版本信息