首页 > 代码库 > shell基础(三)sort用法

shell基础(三)sort用法

shell基础(三)sort用法

语法:sort [-t 分隔符] [-kn1,n2] [-nru]

此处n1<n2

-t 后跟分隔符,作用和cut -d 一样,

-n 使用纯数字排序,只针对数字,如果是字母,会按0处理

-r 反向排序

-u 去重复

-kn1,n2 由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序,cut区间用减号表示,sort用逗号,表示

注意: -t 和 -k 要在一起用;

    sort不加任何选项,按照ACSII进行排序,并非单纯的数字或者字母

# head -n2 /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

sort不加任何选项,从首字母排序,按ASCII码值比较,升序输出

# head -n2 /etc/passwd |sort

bin:x:1:1:bin:/bin:/sbin/nologin

root:x:0:0:root:/root:/bin/bash

技术分享

-t 跟分隔符, -k 后面跟数字,表示按照第几个字符串排序;-n表示使用纯数字排序

# head -n5 /etc/passwd |sort -t: -k3 -n

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

注意:-k3,5 表示第3到第5区域级的字符串排序(cut使用-f3-5或者-c3-5),-r表示反向排序

第三段到第五段,先排第三段,如果第三段中有多行一样,那么就按第四段排,如果第四段也有多行一样,就按第五段排。

# head -n2 /etc/passwd |sort -t: -k3,5

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

# head -n2 /etc/passwd |sort -t: -k3,5 -r

bin:x:1:1:bin:/bin:/sbin/nologin

root:x:0:0:root:/root:/bin/bash

技术分享

-n 和 -u 一起用,sort会吧文档中的字母看成是0

# cut -d: -f1 /etc/passwd |sort -n -u

root

技术分享

#vim 1.txt

1

1

2

2

3

3

4

4

ab

bc

ef

#sort -n 1.txt 【数字大小排序,字母按0排序,若文档没有数字,所有字符会看成0】

ab

bc

ef

1

1

2

2

3

3

4

4

#sort -u 1.txt 【去重复,并不能知道重复了多少,哪里重复】

1

2

3

4

ab

bc

ef

#sort -nu 1.txt 【把所有的字母当做0处理,去重复之后显示最上面的一个】

ab

1

2

3

4

注意:文档中如果有一行全是标点符号,如果 -n 排序,则会显示在第一行。

,.,.,..,.,...

ab

bc

ef

1

1

下面省略


本文出自 “吴腾飞” 博客,请务必保留此出处http://wutengfei.blog.51cto.com/10942117/1908063

shell基础(三)sort用法