全部博文(99)
分类: LINUX
2011-06-07 09:08:49
sort [选项] 文件
说明:sort命令对指定文件中所有的行进行排序,并将结果显示在标准输出上。如不指定输入文件或使用"- ",则表示排序内容来自标准输入。
sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关键字定义了用来排序的最小的字符序列。
缺省情况下以整行为关键字按ASCII字符顺序进行排序。 改变缺省设置的选项主要有:
-m 若给定文件已排好序,合并文件。
-c 检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值1退出。
-u 对排序后认为相同的行只留其中一行。
-t 使用单个字符char作为默认的字段分隔符,取代默认的空白字符。
-o 输出文件 将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,
sort先将该文件的内容写入一个临时文件,然后再排序和写输出结果。
-i 忽略无法打印的字符。
改变缺省排序规则的选项主要有:
-d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。
-f 将小写字母与大写字母同等对待。
-I 忽略非打印字符。
-M 作为月份比较:"JAN"<"FEB"
-r 按逆序输出排序结果。
-n 以整数类型进行排序。
-g 按照一般浮点数字类型进行排序。
+posl - pos2 指定一个或几个字段作为排序关键字,字段位置从posl开始,到pos2为止(包括posl,不包括pos2)。
如不指定pos2,则关键字为从posl到行尾。字段和字符的位置从0开始。
-k 指定字段排序,用以取代原来的以+n.m(开始) -n.m(结束)的方式。
-b 在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。
- t separator 指定字符separator作为字段分隔符。
例:
1、LANG=C sort xxx
设置好locale再排序。
2、sort -k2.1,3.2
以第二个字段的第一个字符到第三个字段的第二个字符之间的内容排序。
3、sort -k3nr、-k3,3nr或者-k3,3 -n -r
以上三个选项都是相同的,以第三个字段按照整数逆序排序。
4、sort -t: -k4n -u /etc/passwd
以“:”为分隔符,逆序排列第四个字段。