linux命令对比两个文件comm

fiy 其他 29

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux中,我们可以使用`comm`命令来对比两个文件的内容。`comm`命令可以按行比较两个已排序的文件,并根据比较结果生成相应的输出。

    `comm`命令的基本用法是:`comm [OPTION]… FILE1 FILE2`。其中,`FILE1`和`FILE2`是要进行对比的两个文件的名称。

    `comm`命令的输出包含三个列,分别表示两个文件共有的行、只在第一个文件中存在的行以及只在第二个文件中存在的行。默认情况下,这些行是按字母顺序进行排序的。

    下面是一个示例:

    “`
    $ cat file1.txt
    apple
    banana
    orange
    peach

    $ cat file2.txt
    banana
    grape
    peach
    watermelon

    $ comm file1.txt file2.txt
    apple
    orange
    banana
    grape
    peach
    watermelon
    “`

    在上面的示例中,`file1.txt`和`file2.txt`是两个要对比的文件。`comm`命令的输出显示了这两个文件的共有行(banana和peach),以及只在第一个文件中存在的行(apple和orange)和只在第二个文件中存在的行(grape和watermelon)。

    `comm`命令支持多种选项,下面是一些常用的选项:

    – `-1`:只显示在第一个文件中存在的行;
    – `-2`:只显示在第二个文件中存在的行;
    – `-3`:只显示两个文件中共有的行;
    – `-i`:不区分大小写进行比较;
    – `-u`:只显示不重复的行。

    例如,如果我们只想显示只在第一个文件中存在的行,可以使用以下命令:

    “`
    $ comm -23 file1.txt file2.txt
    apple
    orange
    “`

    通过比较两个文件,`comm`命令可以帮助我们找出两个文件之间的差异,从而更好地理解文件之间的关系。这对于比较配置文件、日志文件等非常有用。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Linux系统提供了许多命令来对比两个文件,其中比较常用的命令是”comm”。”comm”命令可以用来比较两个已排序的文件,并输出它们之间的差异。以下是对比两个文件的”comm”命令的一些常见使用方式和示例:

    1. 对比两个文件的共同行:
    `comm file1.txt file2.txt`

    这个命令会输出文件1和文件2中共有的行。输出结果有3列,第一列表示只在文件1中的行,第二列表示只在文件2中的行,第三列表示在两个文件中都存在的行。

    例子:
    假设文件1.txt内容如下:
    “`
    apple
    banana
    cherry
    “`
    文件2.txt内容如下:
    “`
    apple
    cherry
    date
    “`
    执行`comm file1.txt file2.txt`命令后,输出结果如下:
    “`
    banana
    apple
    cherry
    date
    “`

    2. 输出只存在于第一个文件中的行:
    `comm -23 file1.txt file2.txt`

    使用”-23″选项可以使命令只输出只存在于第一个文件中的行。

    例子:
    假设文件1.txt内容如下:
    “`
    apple
    banana
    cherry
    “`
    文件2.txt内容如下:
    “`
    apple
    cherry
    date
    “`
    执行`comm -23 file1.txt file2.txt`命令后,输出结果如下:
    “`
    banana
    “`

    3. 输出只存在于第二个文件中的行:
    `comm -13 file1.txt file2.txt`

    使用”-13″选项可以使命令只输出只存在于第二个文件中的行。

    例子:
    假设文件1.txt内容如下:
    “`
    apple
    banana
    cherry
    “`
    文件2.txt内容如下:
    “`
    apple
    cherry
    date
    “`
    执行`comm -13 file1.txt file2.txt`命令后,输出结果如下:
    “`
    date
    “`

    4. 不输出共同行:
    `comm -3 file1.txt file2.txt`

    使用”-3″选项可以使命令不输出共同行。

    例子:
    假设文件1.txt内容如下:
    “`
    apple
    banana
    cherry
    “`
    文件2.txt内容如下:
    “`
    apple
    cherry
    date
    “`
    执行`comm -3 file1.txt file2.txt`命令后,输出结果如下:
    “`
    banana
    date
    “`

    5. 指定分隔符:
    `comm -t file1.txt file2.txt`

    使用”-t”选项可以指定输出结果的分隔符为制表符。

    例子:
    假设文件1.txt内容如下:
    “`
    apple
    banana
    cherry
    “`
    文件2.txt内容如下:
    “`
    apple
    cherry
    date
    “`
    执行`comm -t file1.txt file2.txt`命令后,输出结果如下:
    “`
    banana
    apple
    cherry
    date
    “`

    总结:
    “comm”命令可以用来比较两个已排序的文件,并输出它们之间的差异。通过不同的选项,可以实现输出共同行、只存在于一个文件中的行、不输出共同行以及指定输出结果的分隔符等功能。这些功能可以帮助用户快速找到两个文件之间的差异。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux中,”comm”命令是用来对比两个已经按行排序过的文件的。它可以显示出两个文件之间的差异,并且可以根据需要输出三种类型的行:只存在于第一个文件中的行、只存在于第二个文件中的行,以及两个文件中共存的行。

    下面我们来具体介绍一下”comm”命令的使用方法和操作流程。

    ## 1. 命令格式

    “`
    comm [option] file1 file2
    “`

    该命令有一些可选的选项,用于控制输出的格式和内容。下面是一些常用的选项:

    – -1:只打印出在第一个文件中出现的行;
    – -2:只打印出在第二个文件中出现的行;
    – -3:只打印出两个文件中共存的行;
    – –nocheck-order:不要求输入文件已按行排序;
    – -i:忽略大小写。

    ## 2. 操作流程

    下面我们通过一个示例来演示一下”comm”命令的使用流程。

    假设我们有两个文件:file1.txt和file2.txt。文件内容如下:

    file1.txt:

    “`
    apple
    banana
    cherry
    grape
    mango
    “`

    file2.txt:

    “`
    apple
    cherry
    kiwi
    orange
    “`

    我们想要对比这两个文件,并将结果输出到一个新文件中。首先,我们需要将两个文件按行排序:

    “`
    sort file1.txt > sorted_file1.txt
    sort file2.txt > sorted_file2.txt
    “`

    接下来,我们可以使用”comm”命令来对比这两个已经排序过的文件:

    “`
    comm sorted_file1.txt sorted_file2.txt > comparison.txt
    “`

    以上命令将两个文件的对比结果输出到了comparison.txt文件中。

    ## 3. 对比结果

    最后,我们来看一下对比结果。打开comparison.txt文件,可以发现它包含了三个字段,分别是:

    – 第1列:只存在于第一个文件中的行;
    – 第2列:只存在于第二个文件中的行;
    – 第3列:两个文件中共存的行。

    根据我们的示例文件,comparison.txt的内容如下:

    “`
    banana
    grape
    mango
    kiwi
    orange
    “`

    以上结果表示只在file1.txt中出现的行是”banana”和”mango”,只在file2.txt中出现的行是”kiwi”和”orange”,同时在两个文件中都存在的行是”grape”。

    通过这样的方式,我们可以清楚地看到两个文件之间的差异,并可以根据需要选择输出的内容,方便我们进行进一步的处理和分析。

    综上所述,”comm”命令是一种非常方便的用于对比两个文件差异的工具,通过按行排序和指定选项,我们可以得到清晰的对比结果。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部