linux sort命令

1、sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

?





1

2

3

4

5

6

7

8

9

10

[[email protected] ~]# cat seq.txt 

banana

apple

pear

orange

[[email protected] ~]# sort seq.txt   #默认升序

apple

banana

orange

pear

2、sort -u 选项---去除重复行

?





1

2

3

4

5

6

7

8

9

10

11

12

13

[[email protected] ~]# cat seq.txt

banana

apple

pear

orange

pear

[[email protected] ~]# sort -u seq.txt

apple

banana

orange

pear

3、sort -r 选项----降序  

?





1

2

3

4

5

6

7

8

9

10

11

[[email protected] ~]# sort -u seq.txt

apple

banana

orange

pear

[[email protected] ~]# sort -ur seq.txt

pear

orange

banana

apple

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

[[email protected] ~]# cat seq2    #排序程序将这些数字按字符来排序了,排序程序会先比较1和2,所以下面的升序中1反而最大。

1

2

5

8

10

11

100

[[email protected] ~]# sort seq2                                                                                         

1

10

100

11

2

5

8

[[email protected] ~]# sort -r seq2

8

5

2

11

100

10

1

[[email protected] ~]# sort -n seq2  #-n以数值排序

1

2

5

8

10

11

100

[[email protected] ~]# sort -nr seq2

100

11

10

8

5

2

1

[[email protected] ~]# cat seq2

1

2

5

8

10

11

100

apple

banana

peal

orange

[[email protected] ~]# sort -n seq2  #当排序文件有字符和数字,先排序字符,再排序数字

apple

banana

orange

peal

1

2

5

8

10

11

100

[[email protected] ~]# sort -r seq2

peal

orange

banana

apple

8

5

2

11

100

10

1

[[email protected] ~]# sort -rn seq2

100

11

10

8

5

2

1

peal

orange

banana

apple

6、sort -t -k选项---t指定分隔符,-k指定以哪一列进行排序

?





1

2

3

4

5

6

7

8

9

10

[[email protected] ~]# cat score  #共三列,假使:第一列表示姓名,第二列表示数学分数,第三列表示英语分数

Rusky,80, 90

Jack ,90, 100

Anna ,75, 80

Tom  ,88, 70

[[email protected] ~]# sort -n -k 2 -t , score   #以第二列数学分数重新排序,分隔符为逗号

Anna ,75, 80

Rusky,80, 90

Tom  ,88, 70

Jack ,90, 100

[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》 

  

linux sort命令,布布扣,bubuko.com

时间: 2025-01-04 15:13:33

linux sort命令的相关文章

linux sort 命令详解

原文:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [[email protected] programming]$ cat seq.txtba

[转]linux sort 命令详解

原文网址:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [[email protected] programming]$ cat seq.txtbananaapplepearorange[[email protected] programming]$ sort seq.t

【转】linux sort 命令详解

sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [[email protected] programming]$ cat seq.txt banana apple pear orange [[email protected] programming]$ sort seq.txt apple banana

linux sort命令详解

sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [[email protected] programming]$ cat seq.txt banana apple pear orange [[email protected] programming]$ sort seq.txt apple banana

Linux sort命令中文手册(info sort翻译)

说明: (1).本手册只挑选了有用的信息进行翻译,如要查看完完整整的内容,请自行info sort. (2).译文中,在括号中使用了"注"的,为本人所加,非原文内容,助于理解和说明. (3).本文的sort命令为CentOS 7.2上的,版本为sort (GNU coreutils) 8.22,有些选项在CentOS 6上可能不支持,如"--debug". (4).在没搞懂sort处理字段和排序机制时,强烈建议不要看man sort. 7.1 'sort': Sor

Linux sort 命令的用法

sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容,以行为单位来排序. 参 数:  -b   忽略每行前面开始出的空格字符.  -c   检查文件是否已经按照顺序排序.  -f   排序时,忽略大小写字母.  -M   将前面3个字母依照月份的缩写进行排序.  -n   依照数值的大小排序.  -o<输出文件>   将排序后的结果存入指定的文件.  -r   以相反的顺序来

linux sort 命令

[[email protected] /]# sort 排序^C [[email protected] /]# sort /etc/passwd adm:x:3:4:adm:/var/adm:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin ftp:x:14:50:FTP Use

Linux中sort命令

Linux sort命令用于将文本文件内容按某种方式排序,默认是ASCII码方式: 语法说明: sort[-bcdfimMnur][-o<输出文件>][-t<分隔字符>][-k<n,m>][文件] 常用参数: -b 忽略每行前面开始出的空格字符. -c 检查文件是否已经按照顺序排序. -d 排序时,处理英文字母.数字及空格字符外,忽略其他的字符. -f 排序时,将小写字母视为大写字母. -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符. -m 将几

Linux排序命令sort(转)

Linux sort命令用于将文本文件内容加以排序.sort可针对文本文件的内容,以行为单位来排序. 语法 sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件] 参数说明: -b 忽略每行前面开始出的空格字符. -c 检查文件是否已经按照顺序排序. -d 排序时,处理英文字母.数字及空格字符外,忽略其他的字符. -f 排序时,将小写字母视为大写字母. -i 排