读取输入、对数据进行排序,并将结果写入屏幕、文件或其他设备。
Syntax
sort [/r] [/+<N>] [/m <kilobytes>] [/l <locale>] [/rec <characters>] [[<drive1>:][<path1>]<filename1>] [/t [<drive2>:][<path2>]] [/o [<drive3>:][<path3>]<filename3>]
Parameters
| Parameter | Description |
|---|---|
| /r | 反转排序顺序(即从 Z 到 A 排序,从 9 到 0 排序)。 |
/+<N> |
指定 排序 将开始每次比较的字符位置编号。 N 可以是任何有效的整数。 |
/米 <kilobytes> |
指定用于排序的主内存量(KB)。 |
| /l <区域设置> | 重写系统默认区域设置(即安装过程中选择的语言和国家/地区)定义的字符的排序顺序。 |
/娱乐 <characters> |
指定记录或输入文件的行中的最大字符数(默认值为 4,096,最大值为 65,535)。 |
[<drive1>:][<path1>]<filename1> |
指定要排序的文件。 如果未指定文件名,则对标准输入进行排序。 指定输入文件比重定向与标准输入相同的文件更快。 |
/吨 [<drive2>:][<path2>] |
指定目录的路径,以保存 排序 命令的工作存储(如果数据不适合主内存)。 默认情况下,使用系统临时目录。 |
/o [<drive3>:][<path3>]<filename3> |
指定要存储已排序输入的文件。 如果未指定,数据将写入标准输出。 指定输出文件比将标准输出重定向到同一个文件要快。 |
| /unique | 仅返回唯一结果。 |
| /? | 在命令提示符下显示帮助。 |
Remarks
默认情况下,比较从每行的第一个字符开始。 命令行选项从 /+N 指定的字符开始比较。例如,
/+3指示每次比较应从每行的第三个字符开始。 少于 N 个字符的行在其他行之前进行排序。使用的内存始终至少为 160 KB。 如果指定了内存大小,则用于排序的确切指定量(必须至少为 160 KB),而不考虑可用的主内存量。
如果未指定任何大小,则默认的最大内存大小为可用主内存的 90%(如果输入和输出均为文件),否则为主内存的 45%。 默认设置通常提供最佳性能。
目前,默认区域设置的唯一替代方法是 C 区域设置,它比自然语言排序更快(它根据二进制编码对字符进行排序)。
您可以使用管道符号 (
|) 将输入数据从另一个命令定向到 排序 命令,或将排序输出定向到另一个命令。 可以使用重定向符号(<或>)指定输入和输出文件。 直接指定输入文件(由命令语法中的 filename1 定义),然后使用 /o 参数指定输出文件可以更快、更高效 (尤其是对于大文件) 。sort 命令不区分大写和小写字母,并且对文件大小没有限制。
排序程序使用与 国家/地区 代码和代码页设置相对应的整理序列表。 大于 ASCII 代码 127 的字符根据 Country.sys 文件中的信息或 Config.nt 文件中 country 命令指定的备用文件中的信息进行排序。
如果排序适合最大内存大小 (默认设置或由 /m 参数指定) ,则排序将在单个传递中执行。 否则,排序在两个单独的排序和合并传递中执行,并且用于这两个传递的内存量相等。 执行两次传递时,部分排序的数据存储在磁盘上的临时文件中。 如果没有足够的内存在两次传递中执行排序,则会发出运行时错误。 如果使用 /m 命令行选项指定比实际可用内存更多的内存,则可能会发生性能下降或运行时错误。
Examples
要以相反的顺序对名为 expenses.txt的文件中的行进行排序和显示,请键入:
sort /r expenses.txt要在名为 maillist.txt 的大文件中搜索文本 Jones,并使用管道 (
|) 对搜索结果进行排序,以将 查找 命令的输出定向到 排序 命令,请键入:find Jones maillist.txt | sort该命令生成包含指定文本的行的排序列表。
要对键盘输入进行排序并按字母顺序在屏幕上显示结果,您可以首先使用没有参数的 排序 命令,方法是键入:
sort然后键入要排序的文本,并在每行末尾按 Enter。 键入完文本后,按 Ctrl+Z,然后按 Enter。 sort 命令显示您键入的文本,按字母顺序排序。