zoukankan      html  css  js  c++  java
  • Linux下comm命令比较两个文件的异同

    在操作文件的时候我们可能需要找到两个文件的交集、并集或补集,Linux系统下可以用一个简单的命令实现--comm命令,不同于diff命令,它需要事先排好序,但不是一行一行的比较差异,下面是帮助文档说明

    用法:comm [选项]... 文件1 文件2
    逐行比较已排序的文件文件1 和文件2。
    
    如果不附带选项,程序会生成三列输出。第一列包含文件1 特有的行,第二列包含 文件2 特有的行,而第三列包含两个文件共有的行。
    
      -1        不输出文件1 特有的行
      -2        不输出文件2 特有的行
      -3        不输出两个文件共有的行
    
      --check-order            检查输入是否被正确排序,即使所有输入行均成对
      --nocheck-order        不检查输入是否被正确排序
      --output-delimiter=STR    依照STR 分列
          --help        显示此帮助信息并退出
          --version        显示版本信息并退出
    
    注意,比较操作遵从"LC_CPLLATE"所定义的规则。
    
    示例:
      comm -12 文件1 文件2  只打印在文件1和文件2中都有的行
      comm -3  文件1 文件2  打印在文件1中有,而文件2中没有的行。反之亦然。

    $cat ll.txt
    1
    2
    3
    4
    5
    6
    $cat  ll2.txt
    2
    4
    3
    5
    6
    7
    
    comm -12 ll.txt ll2.txt
    $comm -12 ll ll2 
    2
    4
    comm: 文件2 没有被正确排序
    5
    6
    -------------------------
    $comm -3 ll.txt ll2.txt 
    1
    3
    comm: 文件2 没有被正确排序
        3
        7
    我们会看到3没有被正常排序,comm会给出警告,并把3规为两个文件互不相同的项
    我们可以用--nocheck-order参数消除警告,但是不改变结果
    $comm -12 ll.txt ll3.txt --nocheck-order
    2
    3
    4
    5
    6
    --check-order 参数只输出正确排序之前的项
    $comm -12 ll.txt ll2.txt --check-order
    2
    4
    comm: 文件2 没有被正确排序
    $sort ll2.txt > ll3.txt
    
    $comm -12 ll.txt ll3.txt
    2
    3
    4
    5
    6
    总结:
    comm命令可比较两个文件,一般要求文件需要事先排序,它与diff命令的区别在于,comm不是逐行比对的,可以提取出两个文件的相同部分和特异部分

    具体例子和详细说明见以下链接: https:
    //linux.cn/article-8583-1.html
  • 相关阅读:
    用C#做成的程序如何打包部署,在其他PC机运行
    ZeroMQ——一个轻量级的消息通信组件 C#
    Google Protocol Buffers 快速入门(带生成C#源码的方法)
    【转】如何一直保持测试工作的热情
    【转】关于什么是测试专家的讨论
    释放对某端口的占用
    Android端手机测试体系
    【转】减少缺陷漏测的系统方法体系思考(10年经验的反思)
    【转】3种类型的测试专家之路选择
    【转】手机应用软件测试点汇总
  • 原文地址:https://www.cnblogs.com/xlij1205/p/10564020.html
Copyright © 2011-2022 走看看