Linux之sort命令

1、sort的工作原理

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

# cat file.txt
banana
apple
pear
orange
pear

2、sort的-u选项:输出行中去除重复行

# sort -u file.txt
apple
banana
orange
pear

3、sort的-r选项:降序

# sort -r file.txt
pear
orange
banana
apple

4、sort的-o选项:重定向文件

# sort -r file.txt -o sorted.txt

5、sort的-n选项:已数字来进行排序

# cat number.txt
5
1
10
12
4
3

# sort -n number.txt
1
3
4
5
10
12

6、sort的-t选项和-k选项

# cat fruit.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
上述文件有三列,列与列之间用冒号隔开了。第一列表示水果类型、第二列表示水果数量、第三列表示水果价格。

那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?

sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)

指定了间隔符之后,就可以用-k来指定列数了。

# sort -n -k 2 -t : fruit.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3

在使用-k选项的时候需要注意的事情:

# sort -n -k 2 -k 3 -t : fruit.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3 


-k可以使用过个,上列命令其意思是,当以第二列排序时,遇到相同的话,就已第三列继续排序,默认的是已第一列。

# sort -k 1.2,1.2 -t : fruit.txt
banana:30:5.5
pear:90:2.3
apple:10:2.5
orange:20:3.4 
由于只对第二个字母进行排序,所以我们使用了-k1.2,1.2的表示方式,表示我们“只”对第二个字母进行排序。(如果你问“我使用-k1.2怎么不行?”,当然不行,因为你省略了End部分,这就意味着你将对从第二个字母起到本域最后一个字符为止的字符串进行排序)。


7、sort的-f选项:忽略大小写

该命令很简单就不此描述了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值