shell中的uniq与sort命令

sort命令
sort命令通常用来排序,命令的一些常见用法:

命令用法说明
sort -n纯数字排序
sort -r倒叙
sort -u去掉重复数字
sort -o输出到指定文件中
sort -t指定分隔符
sort -k指定要排序的列
sort -rn反向纯数字排序
sort -rn numbers -o file反向纯数字排序并将结果输出到文件中
sort -urn numbers去掉重复数字纯数字反向排序

以上命令参数可以自由组合,示例:

[root@100 Desktop]# vim numbers
[root@100 Desktop]# cat numbers 
1
3
5
34
10
2
1
5
1
1
[root@100 Desktop]# sort numbers        #默认是正向排序,而且是对每行的第一个单个数字进行排序
1
1
1
1
10
2
3
34
5
5
[root@100 Desktop]# sort -n numbers    #-n 表示纯数字排序
1
1
1
1
2
3
5
5
10
34
[root@100 Desktop]# sort -r numbers     # -r 表示反向排序,也是对每行的第一个单个数字排序
5
5
34
3
2
10
1
1
1
1
[root@100 Desktop]# sort -rn numbers   #反向纯数字排序
34
10
5
5
3
2
1
1
1
1
[root@100 Desktop]# sort -rn numbers -o NUM    #-o 指定输出文件
[root@100 Desktop]# cat NUM 
34
10
5
5
3
2
1
1
1
1
[root@100 Desktop]# sort -u numbers            #-u表示unique独一无二的,去掉重复数字         
1
10
2
3
34
5
[root@100 Desktop]# sort -urn numbers          #去掉重复数字纯数字反向排序
34
10
5
3
2
1

指定分割符和列排序:

[root@100 Desktop]# cat numbers 
1:1
2:3
5:5
2:34
22:10
1:2
3:1
2:5
10:1
3:1

#-t 指定分隔符为: -k 指定列 第2列   !!!!!注意,对列进行处理,行内容不会改变
[root@100 Desktop]# sort -t : -k 2 numbers     
10:1
1:1
3:1
3:1
22:10
1:2
2:3
2:34
2:5
5:5

#以:为分隔符,对第2列纯数字正向排序
[root@100 Desktop]# sort -t : -k 2 numbers  -n      
10:1
1:1
3:1
3:1
1:2
2:3
2:5
5:5
22:10
2:34
#以:为分隔符 ,对第一列去掉重复数字之后反序
[root@100 Desktop]# sort -t : -k 1 numbers -rnu    
22:10
10:1
5:5
3:1
2:3
1:1

uniq命令

uniq命令可以对重复字符做出相应的处理

命令用法说明
uniq -u显示唯一的行
uniq -d显示重复的行
uniq -c每行显示一次并统计重复行数

该命令通常和sort命令组合使用:

[root@100 Desktop]# vim numbers 
[root@100 Desktop]# cat numbers 
1
3
5
34
10
2
1
5
1
1

#进行纯数字排序之后 重复数字只显示一次,并且在左边显示重复次数
[root@100 Desktop]# sort -n numbers | uniq -c      
      4 1
      1 2
      1 3
      2 5
      1 10
      1 34
#进行纯数字排序之后显示重复的行
[root@100 Desktop]# sort -n numbers | uniq -d     
1
5

#进行纯数字排序之后显示不重复的行
[root@100 Desktop]# sort -n numbers | uniq -u     
2
3
10
34
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值