sort命令

sort命令

作用

主要用于对文本内容进行排序

语法:

sort [-bcfMnrtku][源文件][-o 输出文件

参数:

  -b   忽略每行前面开始出的空格字符。

  -c   检查文件是否已经按照顺序排序。

  -f   排序时,忽略大小写字母。

  -M   将前面3个字母依照月份的缩写进行排序。

  -n   依照数值的大小排序。

  -o<输出文件>   将排序后的结果存入指定的文件。

  -r   以相反的顺序来排序。

  -t<分隔字符>   指定排序时所用的栏位分隔字符。

  -k  选择以哪个区间进行排序

  -u 删除重复行

示例

  1. sort处理文件的时候是以行为单位,相互比较,原则是从首字符依次向后,依次按ASCII码值进行比较,最后将他们按升序输出

[jeck@localhost ~]$ cat test

dddddddddddddd

ccccccccccc

eeeeeeeeee

aaaaaaaa

bbbbbbb

abcd

bcd

3

2

5

1

4

[jeck@localhost ~]$ sort test

1

2

3

4

5

aaaaaaaa

abcd

bbbbbbb

bcd

ccccccccccc

dddddddddddddd

eeeeeeeeee

 

  1. 删除重复行 -u

[jeck@localhost ~]$ cat test

bbbbb

aaaaa

cccccc

bbbbb

bbbbbaa

aaaaa

[jeck@localhost ~]$ sort -u test

aaaaa

bbbbb

bbbbbaa

cccccc

  1. 降序排列 -r

[jeck@localhost ~]$ sort -ur test

cccccc

bbbbbaa

bbbbb

aaaaa

  1. 把输出结果存到另一个文件中

一般情况下用'>'即可重定向到另一个文件,但是需要直接修改本文件时,用'>'就会把原文件清空,所以需要用到-o参数

 

[jeck@localhost ~]$ cat test

bbbbb

aaaaa

cccccc

bbbbb

bbbbbaa

aaaaa

[jeck@localhost ~]$ sort -ur test > 1.txt

[jeck@localhost ~]$ cat 1.txt

cccccc

bbbbbaa

bbbbb

aaaaa

[jeck@localhost ~]$ cp test test1

[jeck@localhost ~]$ sort -ur test > test       ---->定向到原文件

[jeck@localhost ~]$ cat test

[jeck@localhost ~]$ sort -ur test1 -o test1

[jeck@localhost ~]$ cat test1

cccccc

bbbbbaa

bbbbb

aaaaa

 

  1. 使用数值来排序 -n

默认sort会以行首第一个字符作比较排序,但是,当出现多位数字作比较时候,就得加-n,否则比较不成功

 

[jeck@localhost ~]$ sort test

1

10

12

14

2

3

4

5

会发现排序不对,现在加上-n

 

[jeck@localhost ~]$ sort -n test

1

2

3

4

5

10

12

14

  1. 指定间隔符(-t)和列数(-k)进行排序

[jeck@localhost ~]$ cat test

一月 192.168.254.1 109

二月 192.168.254.2 201

三月 192.168.254.4 344

现在要按访问次数从大到小排序,以空格为分隔符,指定比较第三列

[jeck@localhost ~]$ sort -n -r -k 3 -t ' ' test

三月 192.168.254.4 344

二月 192.168.254.2 201

一月 192.168.254.1 109

 

原文地址:https://www.cnblogs.com/pycode/p/8734241.html