首页 > Linux 阅读数:23

Linux sort命令:文件排序

Linux sort 命令的功能是对文件中的各行进行排序。sort 命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上,sort 命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。

sort 命令将逐行对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符,如果还相同,将继续进行比较。该命令的使用方式如下:

sort [选项] 文件


sort 命令对指定文件中所有的行进行排序,并将结果显示在标准输出上。如果不指定输入文件或使用“-”,则表示排序内容来自标准输入。

sort 排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关键字定义了用来排序的最小的字符序列。默认情况下以整行为关键字按 ASCII 字符顺序进行排序。

sort 命令选项说明如表 6 所示。

表 6:sort 命令选项说明
选项 说明
-m 若给定文件已排好序,合并文件。
-c 检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值 1 退出。
-u 对排序后认为相同的行只留其中一行
-o 输出文件将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,sort 先将该文件的内容写入一个临时文件,然后排序和写输出结果。
-d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。
-f 将小写字母与大写字母同等对待
-l 显示首次匹配串所在的文件名并用换行符将其隔开。当在某文件中多次出现匹配串时,不重复显示此文件名。
-i 忽略非打印字符
-M 作为月份比较:“JAN”<“FEB”<…<“DEC”
-r 按逆序输出排序结果
+pos1 -pos2 指定一个或几个字段作为排序关键字,字段位置从 pos1 开始,到 pos2 为止(包括 pos1,不包括 pos2)。如果不指定 pos2,则关键字从 pos1 到行尾。字段和字符的位置从 0 开始。
-b 在每行中寻找排序关键字时忽略前导的空白(空格和制表符)
-t separator 指定字符 separator 作为字段分隔符