高级排序/选项 (Mac/Linux)


This help topic applies to UltraEdit on Mac/Linux.

可使用该命令以设置排序选项,并对活动文件或所有已打开的文件进行排序。排序后,将按照以下方式对每一组行进行比较:排序操作将按照指定的顺序(根据相关的排序选项)比较每组字段,直至找出不同之处,或比较完全部字段。如果未指定键字段,排序操作将使用整行的默认键。最后当所有键经过比较相等时,如有绝对必要,排序操作将比较整行,如同未指定倒序之外的其他排序选项。

 

排序进程不限制输入行长度,也不限制行内允许的字符。此外,如果输入文件的最后一个字符不是换行符,排序将默认提供一个换行符。行的行尾换行符不用于行的比较。

 

选择“高级排序选项”命令后,将出现一个包含以下选项的对话框:

 

排序

用户可以使用此下拉列表配置对当前文档所有已打开的文档有影响的排序。

 

输出至新建文件

如果选择该选项,排序结果将写入一个新建文件,源文件不受排序的影响。

 

合并排序结果

仅当在排序下拉列表中选择了所有已打开的文档时,该选项才可用。选择该选项后,将对所有已打开的文档进行排序,并合并到一个单独的结果文件中。

 

顺序

用户可以使用该下拉列表指定用于活动文件的排序方法。以下选项会影响到输出行的顺序。可将这些选项指定为在全局范围内使用,或作为一个特定键字段的一部分。如果未指定键字段,则全局选项适用于整行的比较;否则全局选项将由未指定其自身特殊选项的键字段来继承。有以下选项可用:

词典

按电话目录的顺序进行排序:排序时,忽略字母、数字和空白之外的所有字符。默认情况下,字母和数字都是 ASCII 格式,空白是空格或标签,但是使用区域设置下拉列表选择的选项可对此作出更改。

数字

按数字进行排序。每行以数字为开头,数字包括可选空白、可选 '-' 符号、零或多个数字(可能使用千位分隔符隔开),后面可跟一个小数点字符和零或多个数字。空数字则被视为 '0'。区域设置下拉列表指定小数点字符和千位分隔符。默认情况下,空白是指空格或标签,但可通过区域设置下拉列表进行更改。
月份 由任意数量的空白组成且位于月份缩写前的初始字符串将被更改为大写格式,并按照 'JAN' < 'FEB' < ...< 'DEC' 的顺序进行比较。无效的名称在顺序上比有效的名称靠后。区域设置下拉列表决定月份拼写。默认情况下,空白是指空格或标签,但可通过区域设置下拉列表进行更改。

版本

按版本名称和版本号进行排序。像标准排序一样排序,除了将各个一连串的十进制数字视为索引号/版本号。请参阅下面的“版本”排序。

随机

先按照散列法对输入键进行排序,然后对散列值进行排序。随机选择一个散列函数,确保不会发生冲突,以使不同的键有不同的散列值。这好比输入值的随机排列,除了将有相同值的键一起排序。如果指定了多个随机排序字段,同一随机散列函数将用于所有字段。要将不同的随机散列函数用于不同字段,可以多次调用排序。

默认

按字典顺序进行排序。像字典一样,按照字母顺序对排序行(或指定键)中的每个字符进行排序。  

 

有关“版本”排序方法的详情

版本排序用于处理那些通常含有索引或版本号的文件名称。由于是按逐个字符进行比较的,因而标准排序通常不会生成用户所需的顺序。如果目录中多个文件的名称中含有索引/版本号,则在浏览目录时,版本排序对此尤为有用:

 

     $ ls -1            $ ls -1v

     abc.zml-1.gz       abc.zml-1.gz

     abc.zml-12.gz      abc.zml-2.gz

     abc.zml-2.gz       abc.zml-12.gz

 

按版本排序的字符串根据以下原则进行比较:如果 ver1 和 ver2 都是版本号,且前缀和后缀(匹配正则表达式 '(.[A-Za-z~][A-Za-z0-9~]*)*' 的后缀)都是字符串,那么 ver1 < ver2 表示由“前缀 ver1 后缀”组成的名称排在由“前缀 ver2 后缀”组成的名称的前面。

 

另需注意,数字部分的前导零将被忽略。

     $ ls -1            $ ls -1v

     abc-1.007.tgz      abc-1.01a.tgz

     abc-1.012b.tgz     abc-1.007.tgz

     abc-1.01a.tgz      abc-1.012b.tgz

 

某些后缀与上述正则表达式不匹配。所以,这些范例可能无法按预期进行排序:

 

          abc-1.2.3.4.7z

          abc-1.2.3.7z

          abc-1.2.3.4.x86_64.rpm

          abc-1.2.3.x86_64.rpm

 

选项

删除重复项 如果选择该选项,将从结果中删除被检测为重复项的行。
倒序 对比较结果进行反向排序,因而在输出中键值越大的行排行越靠前,而不是靠后。
忽略前导空白 在各行中查找排序键时,忽略前导空白。默认情况下,空白是指空格或标签,但可通过区域设置下拉列表进行更改。注意:可按照区域设置的定序规则忽略空白,但是如果不使用该选项,这些空白将大大影响键中指定的字符位置。
区域设置 用户可以使用该下拉列表来指定用于排序操作的区域设置。该设置将影响到词典月份数字版本排序的结果。
忽略大小写 比较时,将小写字符更改为等同的大写字符,以使如 'b' 和 'B' 的顺序等同。区域设置下拉列表决定字符类型。
稳定排序 通过禁用其绝对必要的比较来保持排序稳定,以使所有字段相等的行保持最初的相对顺序。如果未指定除倒序以外的任何字段或全局排序选项,则该选项没有任何影响。
定界符

默认情况下,排序操作可检测到从非空白字符至空白(默认为空格或标签)的过渡。这用于确定排序字段的开头和结尾。如有必要,用户可将一个特定字符指定为字段定界符。

 

将“整行”用作“键”

如果选择了该选项,则在对文件进行排序时,将对整行进行评估。该选项不用于单个字段/字符。

 

如果愿意,用户可指定用于确定排序方法和排列顺序的键。除非另行指定,排序键将继承忽略大小写忽略空白的全局排序选项。

 

可通过指定以下各项来定义排序开始字段开始字符结束字段结束字符。 字段位置和字符位置都是从 1 开始编号;结束字符的字符位置为 0,是指该字段的最后一个字符。如果指定了字段值,但未指定开始字符值和结束字符值,排序键将被默认为指定字段的开头和结尾部分。键可以涵盖多个字段。

 

忽略大小写忽略空白选项和所选排序方法都是针对相关键的。如果未指定这些选项,但指定了键字段和字符,将使用全局指定的选项对指定键进行排序。

 

按下排序按钮以使用指定的参数开始排序进程。根据待排序文件的大小,可能出现一个提示,表明文件已被锁定以便排序。在对文件进行排序时,文件将被锁定,不得修改。


Article Number: 5209
Posted: Mon, Apr 23, 2012 3:10 PM
Last Updated: Mon, Apr 23, 2012 3:12 PM

Online URL: http://www.ultraedit.com/help/article/高级排序-选项-mac-linux-5209.html