1、sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
?
1 2 3 4 5 6 7 8 9 10 |
|
2、sort -u 选项---去除重复行
?
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
3、sort -r 选项----降序
?
1 2 3 4 5 6 7 8 9 10 11 |
|
4、sort -o选项----重定向,在linux下与 >相同
[[email protected] ~]# cat seqNO.txt
1
2
3
4
5[[email protected] ~]# sort -r seqNO.txt > number.txt
[[email protected] ~]# cat number.txt
5
4
3
2
1[[email protected] ~]# sort -r seqNO.txt -o number2.txt
[[email protected] ~]# cat number2.txt
5
4
3
2
1
5、sort -n 选项---以数值排序
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
|
6、sort -t -k选项---t指定分隔符,-k指定以哪一列进行排序
?
1 2 3 4 5 6 7 8 9 10 |
|
[ro[email protected] ~]# sort -n -k 2 -t ‘ ‘ score2
#如果分隔符为空格,则用单引号,中间加空格即可
Anna 75 80
Rusky 80
90
Tom 88 70
Jack 90 100
[[email protected] ~]# sort -k 1 score
Anna ,75,
80
Jack ,90, 100
Rusky,80, 90
Tom ,88, 70
7 其他的sort常用选项
-f会将小写字母都转换为大写字母来进行比较,亦即忽略大小写
-c会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1
-C会检查文件是否已排好序,如果乱序,不输出内容,仅返回1
-M会以月份来排序,比如JAN小于FEB等等
-b会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。
以数值,第二列进行排序,如果第二列有相同的,则以第三列进行排序
[[email protected] ~]# cat score2
Rusky 80 90
Jack 90 100
Anna 75 80
Tom 80 70
[[email protected] ~]# sort -n -k 2 -k 3 -t ‘ ‘ score2
Anna 75 80
Tom 80 70
Rusky 80 90
Jack 90 100
以第三列值逆序排序
[[email protected] ~]# sort -t ‘ ‘ -k 3nr score2
Jack 90 100
Rusky 80 90
Tom 80 70
Anna 75 80
以第二列值逆序排序,如果相同值,则以第三列长升序排序
[[email protected] ~]# sort -t ‘ ‘ -k 2nr -k 3n score2
Jack 90 100
Tom 80 70
Rusky 80 90
Anna 75 80
《FROM:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html》