• sort命令


    最近统计线上log比较多,每次都用到sort,但是发现没有完全理解sort这个命令

    1、问题一: 排序后存放在另一个文件中

    sort -k 2 -k 3 login.txt > login.log

    自己通过后缀区分排序后的文件,这样做也有好处可以做个备份,其实不想要备份的时候可以用 -o

    sort -k2 -k3 login.txt -o login.txt
    
    sort -k2 -k3 login.txt -o login.log

    2、问题二:我想已第二列去重

    cat login.txt | awk '{arr[$2]=$0}END{for(a in arr)print arr[a];}'

    其实这个有点麻烦了

    sort -k2,2 -u log 

    -k2 是不行的,因为-k2 他会比较从第2列开始到最后的最后

    要继续往下深入的话,就不得不来点理论知识。你需要了解-k选项的语法格式,如下:
    
    [ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
    
    这个语法格式可以被其中的逗号(“,”)分为两大部分,Start部分和End部分。
    
    先给你灌输一个思想,那就是“如果不设定End部分,那么就认为End被设定为行尾”。这个概念很重要的,但往往你不会重视它。
    
    Start部分也由三部分组成,其中的Modifier部分就是我们之前说过的类似n和r的选项部分。我们重点说说Start部分的FStart和C.Start。
    
    C.Start也是可以省略的,省略的话就表示从本域的开头部分开始。之前例子中的-k 2和-k 3就是省略了C.Start的例子喽。
    
    FStart.CStart,其中FStart就是表示使用的域,而CStart则表示在FStart域中从第几个字符开始算“排序首字符”。
    
    同理,在End部分中,你可以设定FEnd.CEnd,如果你省略.CEnd,则表示结尾到“域尾”,即本域的最后一个字符。或者,如果你将CEnd设定为0(零),也是表示结尾到“域尾”。
  • 相关阅读:
    Confluence 6 连接到一个 LDAP 目录
    Confluence 6 LDAP 成员结构设置
    Confluence 6 LDAP 用户组结构设置
    Confluence 6 LDAP 用户结构设置
    Confluence 6 LDAP 高级设置
    Confluence 6 自动添加用户到用户组
    Confluence 6 权限设置
    一个小白的测试环境docker化之路
    客户端SDK测试思路
    限时购校验小工具&dubbo异步调用实现限
  • 原文地址:https://www.cnblogs.com/bai-jimmy/p/4459988.html
Copyright © 2020-2023  润新知