zoukankan      html  css  js  c++  java
  • 小公举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)。

     

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

     

    作者:李先生

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

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

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

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

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

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

  • 相关阅读:
    CSS3—— 2D转换 3D转换 过渡 动画
    CSS3——边框 圆角 背景 渐变 文本效果
    CSS3——表单 计数器 网页布局 应用实例
    CSS3——提示工具 图片廓 图像透明 图像拼接技术 媒体类型 属性选择器
    CSS3——对齐 组合选择符 伪类 伪元素 导航栏 下拉菜单
    CSS3——分组和嵌套 尺寸 display显示 position定位 overflow float浮动
    CSS3——盒子模型 border(边框) 轮廓(outline)属性 margin外边距 padding填充
    Eclipse连接数据库报错Local variable passwd defined in an enclosing scope must be final or effectively final
    数据库——单表查询
    数据库——添加,修改,删除
  • 原文地址:https://www.cnblogs.com/lemon-le/p/14457550.html
Copyright © 2011-2022 走看看