zoukankan      html  css  js  c++  java
  • sort 命令对文件多列详细排序

    • sort 命令 默认是打印出来,可以通过定向符>  或-o 指定输出文件
    • -t ' ' 指定分隔符为空格
    • -k 指定按分隔后的第几域排序
    • -n 按数值大小排序,默认是升序(从小到大)
    • -r 表示逆序 reverse
    1. sort -t ' ' -k 1 sort_test.file # 对第一域默认按ASCII码值排序 
    2.  sort -t ' ' -n -k 2 sort_test.file  # 对第二域按数值大小排序
    3. sort -t ' ' -n -k 2 -k 3 sort_test.file # 对第二域按数值排序,当第二域相同时按第三域排序 
    4. sort -t ' ' -n -k 3r -k 2 sort_test.file # 按第3域倒序,相同时按第二域升序排。 等同于 sort -t ' ' -k 3nr -k 2n sort_test.file

    解析 -k 格式。 

    [ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
    • Fstart 即开始的域 .CStart即在Fstart域内第几个字符 (F:Filed, C:Character) 。CStart缺省表示首字符开始
    • Modifier: 修饰符,如n,r等
    • FEnd 截止域,CEnd 截止域内的第几个字符。 FEnd缺省表示到行尾,CEnd表示这个域尾
    1. 例子:sort -t ' ' -k 1.2 sort_test.file 从第一个域的第二个字母(到结尾)排序
    2. sort -t ' ' -k 1.2,1.2 -k 3,3nr sort_test.file 。按照第一域的第二个字符排序,如果相同则按第三域的值排序  与sort -t ' ' -k 1.2,1.2 -k 3nr sort_test.file 意思相同 -k 3,3 与-k3 都表示完整的第三域

    3. 注意含义不同的:
      1. sort -t ' ' -k 1.2 -k 3,3nr sort_test.file  # 表示从第一域的第二字符一直到该域最后一个字符排序,如果还存在相等,再按第三域数值排序
      2. sort -t ' ' -k 1 -k 3,3nr sort_test.file #从第一域的第一个字符到该域最后一个字符排序,如果还存在相等项,按第三域数值排序

    备注: sort -n -k 2.2,3.1 -k 1,1r sort_test.file 。这里会比较第二域第二字符到结尾字符几位的数值排序,(0 00 00 10)然后比较第一域倒向排序

      这种 -k2.2,3.1  Fstart 与Fend跨域的是失效的,只会到前面域结束为止。

    本文来自博客园,作者:BioinformaticsMaster,转载请注明原文链接:https://www.cnblogs.com/koujiaodahan/p/15795325.html

  • 相关阅读:
    Vue中 el-table大数据量加载,不分页,节省内存的性能优化
    http请求中Content-Type以及qs.stringify的使用
    setTimeout用法(Event Loop简介、for循环中应用、vue中应用)
    Vue中关于图片路径配置的填坑日记
    WebSocket
    Vue中mockjs的使用
    Vue 作用域插槽slot slot-scope v-slot
    Windows Server 2003搭建邮件服务器
    Exchange 2010的部署
    Exchange 2010 详细安装步骤
  • 原文地址:https://www.cnblogs.com/koujiaodahan/p/15795325.html
Copyright © 2011-2022 走看看