• 小公举comm,快速比较两个排序文件


    前言

    我们经常会有需求比较一个文件里的内容是否在另一个文件存在。假如我有一份监控列表的IP写入在了file1,我所有的机器IP写入在了file2,我要找出还有哪些机器没有在监控列表。以前的做法是写个两层循环,或者用diff命令。打印出来也没那么直观,直到最近找打了comm,以前也知道这个小工具,可能是没有静心去看他之类的,总感觉搞不明白。最近几天类似的比较需求有点多,还是决定用它,也就有了自己的总结。
     

    目录

    1、comm的功能
    2、用法
    3、输出格式
    4、参数
    5、例子
    6、写在最后
     

    1、功能

    用于比较两个已经排过序的文件。这里一定要注意是两个文件都要已经排序了,没有排序的话,打印出来的结果是不一样的。
     

    2、用法

    comm [-123] file1 file2

    3、输出

    用comm命令比较出来后,一共会有3列的显示,其中的代表的含义如下:
    第一列:显示仅在第一个文件有的行。
    第二列:显示仅在第二个文件有的行。
    第三列:显示在文件1和文件2都有的行。
     

    4、参数

    在用comm命令时,可以使用-1、-2、-3、-12、-13、-23等参数,其中这些参数的含义如下:
    -1:不显示在第一个文件中独有的行
    -2:不显示在第二个文件中独有的行
    -3:不显示两个文件中共有的行
     
    可以把“-”理解为减号,-1就是输出时不打印第一列;-2就是不打印第二列,只打印第1列和第3列。
     

    5、实例

    file1:
    aa
    dd
    bb
    cc
    ff
     
    file2:
    nn
    oo
    aa
     
    从这里可以看出,第三列并没有把在两个文件中都有的行打印出来。这是因为在使用comm命令时,一定要先对文件做sort排序。
    C02D37BHMD6T:~ lli$ comm file1 file2
    aa
    dd
    bb
    cc
    ff
        nn
        oo
        aa
    经过对文件排序后的对比
    C02D37BHMD6T:~ lli$ cat file1 |sort > file3
    C02D37BHMD6T:~ lli$ cat file2 |sort > file4
    第一列可以看出是file3文件独有的,第二列为file4独有的,第三列为两个文件共有的。
    C02D37BHMD6T:~ lli$ comm file3 file4
            aa
    bb
    cc
    dd
    ff
        nn
        oo

    六、写在最后

    李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷。喜欢钻研底层技术,认为底层基础才是王道。一切新技术都离不开操作系统(CPU、内存、磁盘)、网络等。坚持输入输出,记录自己学习的点滴,在平凡中坚持前行,总有一天会遇见不一样的自己。公众号:运维汪(ID:Leeeee_Li)。

     

    欢迎大家关注我的公众号,一起交流、学习。

     

    作者:李先生

    -------------------------------------------

    个性签名:在平凡中坚持前行,总有一天会遇见不一样的自己!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

    万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

    微信公众号 微信打赏 微信打赏

       微信公众号        微信打赏       支付宝打赏

  • 相关阅读:
    ASP.NET 高级编程基础第十一篇—WebForm和Page类成员
    ASP.NET 高级编程基础第十三篇—验证控件
    C#委托和事件详解第二篇
    C#委托事件详解第三篇
    点击一个Button,来看Duwamish7的总体层次
    ELMAHError Logging Modules And Handlers
    [实例研究Duwamish]SystemFramework和Common命名空间
    关于Blog的一些周边资源
    .NET框架程序设计Globally Deployment Assembly全局部署程序集
    合并2个DataSet
  • 原文地址:https://www.cnblogs.com/lemon-le/p/14457550.html
Copyright © 2020-2023  润新知