ITEEDU

Sort

读取输入、排序数据并将结果写到屏幕、文件和其他设备上。

语法

sort [/r] [/+n] [/m kilobytes] [/l locale] [/rec characters] [[drive1:][path1]filename1] 
[/t [drive2:][path2]] [/o [drive3:][path3]filename3][command |] sort [/r] [/+n] [/m kilobytes] [/l locale]
[/rec characters] [[drive1:][path1]filename1][/t [drive2:][path2]] [/o [drive3:][path3]filename3]

参数

/r

颠倒排序顺序,即从 Z 到 A 排序,然后从 9 到 0 排序。

/+n

指定字符位置号 n,sort 在此处开始每次比较。

/m kilobytes

指定用于排序的主内存数量,按千字节 (KB) 计。

/l locale

替代由系统默认区域设置(即在安装时选择的语言和"国家(地区)")定义的字符排序顺序。

/rec characters

指定记录或输入文件的行中的最多字符数(默认值为 4096,最大值为 65535)。

[drive1:][path1]filename1

指定要排序的文件。如果没有指定文件名,则对标准输入排序。指定输入文件比将同一文件作为标准输入重定向速度快。

/t [drive2:][path2]

指定保留 sort 命令工作存储的目录路径,防止数据不能装入主内存。默认为使用系统临时目录。

/o [drive3:][path3]filename3

指定要存储排序后的输入的文件。如果没有指定,数据将写入标准输出。指定输出文件比将同一文件作为标准输出重定向速度快。

/?

在命令提示符显示帮助。

注释

使用 /+n 命令行选项

例如,使用 /+n 命令行时,/+3 表示每个比较应该在每行的第三个字符开始。少于 n 个字符的行在其他行之前排序。默认情况下,比较在每行的第一个字符开始。

使用 /m kilobytes 命令行选项

使用的内存最小值总是 160 KB。如果指定了内存大小,则无论有多少主内存可用,指定的确切数量(但至少 160 KB)的内存将用于排序。

如果输入输出均为文件,在没有指定大小时,默认最大内存大小为可用主内存的 90%,否则为主内存的 45%。默认设置通常会产生最佳的性能。

使用 /l locale 命令行选项

目前,默认区域设置唯一的备用选项就是"C"区域设置,该区域设置比自然语言排序快,根据二进制编码对字符排序。

指定源

除非指定了 command 或 FileName 参数,否则,sort 将作为筛选器使用,并从标准输入(通常从键盘、管道或文件)获得输入。

将重定向符号与排序一起使用

可以使用管道 (|) 符号通过 sort 命令从其他命令定向数据,或者将排序输出定向到另一个命令(例如定向到 more 命令,以便一次显示一个屏幕的信息)。使用小于号 (<) 或大于号 (>) 指定输入文件或输出文件可能效率不很高;应该直接指定输入文件(如命令语法中定义),并使用 /o 参数指定输出文件。这样速度会更快,特别对于大文件。

大写和小写

sort 命令不区分大小写字母。

文件大小的限制

sort 命令对文件大小没有限制。

排序序列

排序程序使用与"国家(地区)"代码和代码页设置对应的排序序列表。大于 ASCII 代码 127 的字符根据 Country.sys 文件或 Config.nt 文件的 country 命令指定的备用文件中的信息排序。

内存的使用

如果排序适合内存(默认的最大内存或 /m 参数指定的内存大小),则该排序仅以一个周期执行。否则,将以两个周期执行排序,以便用于排序和合并周期的内存数量相等。执行了两个周期后,部分排序的数据存储在磁盘的临时文件中。如果内存不足以以两个周期执行排序,则会出现运行时错误。如果 /m 选项用来指定比实际可用内存更多的内存,则会出现性能下降或运行时错误。

范例

排序文件

以下命令读取文件 Expenses.txt,以倒序排序该文件并显示在屏幕上:

 sort /r expenses.txt 

对命令输出排序

要在名为 Maillist.txt 的大文件中搜索文本"Jones",并排序搜索结果,请使用管道 (|) 将 find 命令的输出定向到 sort 命令,如下所示:

 find "Jones" maillist.txt | sort

该命令产生包含指定文本的行的排序列表。

对键盘输入排序

要排序键盘输入并按字母顺序在屏幕上显示结果,可以先使用不包含参数的 sort 命令,如下所示: sort

然后键入要排序的文本,在每一行的结尾按回车键。键入完文本后,按 CTRL+Z,然后按回车。sort 命令将显示您键入的文本,并按字母顺序排序。

也可以将排序后的键盘输入重定向到文件。