Linux命令-sort排序

英文: sort lines of text files
描述: 对文本内容进行排序


用法
  • 命令格式
    sort [OPTION]… [FILE]…
    sort [OPTION]… --files0-from=F

  • 参数
    -u:去除重复项(对相同的行只输出一行)
    -r:倒序排序
    -n:按数字排序
    -t:指定分隔符(类式:awk -F,取段$1,$2、cut -d 取段f)
    -k:指定第几列或第几列的第几个字符
     -k1:分隔符之后的第一列排序
     -k 字段1,字段2:从字段1开始排序到字段2结束
    -b:忽略前导的空格
    -d:只考虑空格,字母和数字
    -f:忽略字母的大小写
    -i:只考虑可打印字符
    -M:排序月份
    +n:n为数字,对指定的列进行排序,+0表示第1列,以空格或制表符作为列的间隔符

样例
  • 测试数据
    [root@localhost ~]# cat test.txt 
    10.0.0.9 b
    10.0.0.8 c
    10.0.0.7 a
    10.0.0.7 x
    10.0.0.8 o
    10.0.0.8 y
    10.0.0.9 o
    
  • 按照第2列排序
    [root@localhost ~]# sort -t" " -k 2 test.txt 
    10.0.0.7 a
    10.0.0.9 b
    10.0.0.8 c
    10.0.0.8 o
    10.0.0.9 o
    10.0.0.7 x
    10.0.0.8 y
    
  • 将ip地址按照第三段地址降序排序,如第三段一样则第四段按照降序排序
    测试文本
    192.168.1.123 00:0c:29:a5:c5:fb 
    192.168.1.11 00:0c:29:a5:c5:fb 
    192.168.1.1 00:0c:29:a5:c5:fb 
    192.168.1.13 00:0c:29:a5:c5:fb 
    192.168.3.23 00:0c:29:a5:c5:fb 
    192.168.3.78 00:0c:29:a5:c5:fb 
    192.168.3.34 00:0c:29:a5:c5:fb 
    192.168.3.56 00:0c:29:a5:c5:fb 
    192.168.3.12 00:0c:29:a5:c5:fb 
    192.168.2.34 00:0c:29:a5:c5:fb 
    192.168.2.56 00:0c:29:a5:c5:fb 
    192.168.2.78 00:0c:29:a5:c5:fb 
    192.168.2.145 00:0c:29:a5:c5:fb 
    192.168.3.112 00:0c:29:a5:c5:fb 
    
    排序脚本
    [root@localhost ~]# sort -t. -k3.1,3.1nr -k4.1,4.3nr ip.txt  
    192.168.3.112 00:0c:29:a5:c5:fb 
    192.168.3.78 00:0c:29:a5:c5:fb 
    192.168.3.56 00:0c:29:a5:c5:fb 
    192.168.3.34 00:0c:29:a5:c5:fb 
    192.168.3.23 00:0c:29:a5:c5:fb 
    192.168.3.12 00:0c:29:a5:c5:fb 
    192.168.2.145 00:0c:29:a5:c5:fb 
    192.168.2.78 00:0c:29:a5:c5:fb 
    192.168.2.56 00:0c:29:a5:c5:fb 
    192.168.2.34 00:0c:29:a5:c5:fb 
    192.168.1.123 00:0c:29:a5:c5:fb 
    192.168.1.13 00:0c:29:a5:c5:fb 
    192.168.1.11 00:0c:29:a5:c5:f
    192.168.1.1 00:0c:29:a5:c5:df 
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值