sort

uniq 命令详解

sort 命令详解

-u	去除重复行
-r	默认是升序,如果想改成降序加-r
-o	输出到文件,代替 > filename
-n	按数字来排序,而不是按字母,如:1,10,11,2,3,4
-t	设置间隔符
-k	与-t配合指定列号
-f	忽略大小写
-c	检查文件是否已排好序,如果乱序,返回1
-C	检查文件是否已排好序,如果乱序,不输出内容,仅返回1
-M	以月份来排序,比如JAN小于FEB等等
-b	忽略每一行前面的所有空白部分,从第一个可见字符开始比较

举例:
$ cat facebook.txt
google 110 5000
baidu 100 5000
guge 50 3000
sohu 100 4500

第一个域是公司名称,第二个域是公司人数,第三个域是员工平均工资。

按公司的字母顺序排序
sort -t ' ' -k 2 facebook.txt

按照公司人数排序,人数相同的按照员工平均工资升序排序
sort -n -t ' ' -k 2 -k 3 facebook.txt

按照员工工资降序排序,如果员工人数相同的,则按照公司人数升序排序
sort -n -t ' ' -k 3r -k 2 facebook.txt

去掉了最前面的-n选项,而是将它加入到了每一个-k选项中了
sort -t ' ' -k 3nr -k 2n facebook.txt

从公司英文名称的第二个字母开始进行排序
sort -t ' ' -k 1.2 facebook.txt

只针对公司英文名称的第二个字母进行排序,如果相同的按照员工工资进行降序排序
sort -t ' ' -k 1.2,1.2 -k 3,3nr facebook.txt

-u只识别用-k设定的域,发现相同,就将后续相同的行都删除
sort  -k 1 -u facebook.txt