Linux操作系统与服务配置
上QQ阅读APP看书,第一时间看更新

4.3.3 sort命令

【使用权限】所有使用者。

【命令说明】sort命令对File参数指定的文件中的行排序,然后将结果按标准格式显示输出。如果File参数指定多个文件,则sort命令将这些文件连接起来,并当作一个文件进行排序。-(减号)代替文件名指定标准输入。如果用户不指定任何文件名,则该命令对标准输入排序。可以使用-o标志指定输出文件。如果不指定任何标志,sort命令基于当前语言环境的整理顺序对输入文件的所有行排序。

【参数说明】

-A:使用ASCII整理顺序代替当前语言环境的整理顺序在逐字节的基础上排序。

-b:忽略前导空格和制表符,找出字段的第一或最后列。

-c:检查输入是否已按照标志中指定的排序规则进行排序。如果输入文件排序不正确则返回一个非零值。

-d:使用字典顺序排序。(仅考虑字母、数字和空格的排序)

-f:比较前将所有小写字母改成大写字母。

-i:比较中忽略所有非显示字符。

-k KeyDefinition:指定排序关键字。KeyDefinition选项的格式为:

[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]

排序关键字包括所有以FStart变量指定的字段和CStart变量指定的列开头的字符及以FEnd变量指定的字段和CEnd变量指定的列结束的字符。Modifier变量的值可以是b、d、f、i、n或r。修饰符与同一字母的标志等价。

-m:只合并多个输入文件;假设输入文件已经排序。

-n:按算术值对数字字段排序。数字字段可包含前导空格、十进制数字、千分位分隔符和可选基数符。对包含任何非数字字符的字段进行数字排序会出现无法预知的结果。

-o OutFile:将输出指向OutFile参数指定的文件,而不是标准输出。OutFile参数值可以与File参数值相同。

-r:颠倒指定排序的顺序。

-t:Character:指定Character为单一的字段分隔符。

-u:去除重复的行。

-T Directory:将创建的所有临时文件放入Directory参数指定的目录中。

-y[Kilobytes]:Kilobytes的值用于指定主存储的千字节数启动sort命令,并根据需要增加存储量。(如果Kilobytes值小于最小存储站点或大于最大存储站点,就以这个最小存储站点或最大存储站点取代)。如果省略-y标志,sort命令以默认的存储大小启动。-y0标志用最小存储启动;-y标志(不带Kilobytes值)用最大存储启动。sort命令使用的存储量显著地影响性能,以大存储量对小文件排序将很浪费资源。

-z RecordSize:如果正在排序的任一行大于默认的缓冲区大小,要防止出现异常终止。指定-c或-m标志时,省略排序阶段,使用系统的默认缓冲大小。如果已排序行超出这一大小,排序异常终止。-z选项指定排序阶段最长行的记录,因而可在合并阶段分配足够的缓冲区。RecordSize必须指明等于或大于要合并的最长行的字节值。

【例4.20】sort命令的使用。