linux系统中comm命令

worktile 其他 244

回复

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

    comm命令是一个在Linux系统中常用的命令行工具,用于比较两个已经排序的文件,并输出它们的公共行、独有行等信息。以下是关于comm命令的具体用法及示例:

    1. 基本语法
    “`shell
    comm [OPTION]… FILE1 FILE2
    “`
    其中,FILE1和FILE2分别是要比较的两个文件的路径。

    2. 常用选项
    – -1:禁止输出第一个文件中唯一的行
    – -2:禁止输出第二个文件中唯一的行
    – -3:禁止输出两个文件中共有的行
    – -i:忽略大小写进行比较
    – -u:仅输出两个文件中唯一的行
    – -C:在输出结果的前后加上一行分隔符,方便阅读(默认为”\t”)

    3. 示例
    为了更好地理解comm命令的用法,以下是一些示例:

    – 示例1:比较两个文件的公共行
    “`shell
    $ comm file1.txt file2.txt
    “`
    输出文件1.txt和文件2.txt中相同的行。

    – 示例2:比较两个文件的独有行
    “`shell
    $ comm -23 file1.txt file2.txt
    “`
    输出文件1.txt中独有的行。

    – 示例3:忽略大小写进行比较
    “`shell
    $ comm -i file1.txt file2.txt
    “`
    忽略文件大小写,比较文件1.txt和文件2.txt中的行。

    – 示例4:指定分隔符
    “`shell
    $ comm -C ‘|’ file1.txt file2.txt
    “`
    设置分隔符为”|”,输出结果时在前后分别添加”|”.

    以上是对comm命令的简单介绍及示例,希望能对你在使用Linux系统中的comm命令有所帮助。

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

    Comm命令是一个在Linux系统下常用的命令行工具,用于比较两个排过序的文件,并找出这两个文件的相同行和不同行。下面是关于comm命令的五个主要用法:

    1. 比较两个已排序的文件:
    Comm命令最基本的用法是比较两个已经排序了的文件,并输出它们的相同行、不同行以及只在一个文件中存在的行。命令的基本语法是:comm [option] file1 file2。例如,如果我们有两个已排序文件file1.txt和file2.txt,我们可以使用以下命令进行比较:

    $ comm file1.txt file2.txt

    2. 仅显示相同的行:
    通过加上选项”-1″,”-2″或者”-3″,我们可以只输出相同的行、只在第一个文件中存在的行或者只在第二个文件中存在的行。例如,以下命令只会输出相同的行:

    $ comm -12 file1.txt file2.txt

    3. 忽略前导空白字符:
    默认情况下,Comm命令会把每行的前导空白字符也当作行的一部分进行比较。如果我们想要忽略前导空白字符,可以使用选项”-i”。例如,以下命令将会比较两个文件时忽略前导空白字符:

    $ comm -i file1.txt file2.txt

    4. 自定义输出分隔符:
    Comm命令默认使用制表符作为输出分隔符,但是可以使用选项”-t”来指定其他字符作为分隔符。例如,以下命令将会使用”|”作为分隔符:

    $ comm -t “|” file1.txt file2.txt

    5. 仅显示第一个文件中的行:
    如果我们只想要输出第一个文件中特有的行,可以使用选项”-13″。例如,以下命令将会输出只在第一个文件中存在的行:

    $ comm -13 file1.txt file2.txt

    总结起来,Comm命令是一个用于比较两个排过序的文件的命令行工具,通过比较,可以找出两个文件的相同行和不同行。通过选项的组合,该命令具有很高的灵活性,可以满足不同的比较需求。

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

    一、Comm命令概述
    Comm命令是一个用于比较两个有序文件之间的区别的工具。它将两个文件作为输入,并按行逐行比较它们的内容。Comm命令会将这些文件分成三个列:只存在于第一个文件的行、只存在于第二个文件的行以及两个文件共有的行。Comm命令是Linux系统中的一个常用命令,它通常与其他命令一起使用来查找文件中的差异或比较两个文件之间的差异。

    二、Comm命令语法
    Comm命令的基本语法如下:
    comm [OPTION]… FILE1 FILE2

    参数说明:
    -1:只显示在第一个文件中独有的行;
    -2:只显示在第二个文件中独有的行;
    -3:只显示在两个文件中共有的行;
    –check-order:检查输入文件是否有序;
    –nocheck-order:不检查输入文件是否有序;
    –output-delimiter=字符串:指定输出列之间的分隔符,默认为制表符;
    –help:显示命令帮助信息;
    –version:显示命令版本信息。

    三、Comm命令操作示例
    下面通过几个实例来演示Comm命令的使用方法和输出结果。

    1.比较两个文件的不同之处
    假设有两个文件file1.txt和file2.txt,内容如下:
    file1.txt:
    apple
    banana
    orange
    pear

    file2.txt:
    apple
    banana
    grape
    watermelon

    执行以下命令:
    comm file1.txt file2.txt

    输出结果:
    apple
    banana
    pear
    grape
    watermelon

    解释:Comm命令默认会输出共有行和只存在于第一个文件中的行。根据输出结果,可以看到apple和banana是两个文件共有的行,pear只存在于第一个文件中,grape和watermelon只存在于第二个文件中。

    2.按照不同的列来比较文件
    假设有两个文件file1.txt和file2.txt,内容如下:
    file1.txt:
    apple 100
    banana 200
    orange 300
    pear 400

    file2.txt:
    apple 90
    banana 200
    grape 150
    watermelon 250

    执行以下命令:
    comm -1 -2 -3 file1.txt file2.txt

    输出结果:
    banana 200

    解释:-1参数表示只显示在第一个文件中独有的行,-2参数表示只显示在第二个文件中独有的行,-3参数表示只显示在两个文件中共有的行。根据输出结果,可以看到只有banana 200是两个文件共有的行。

    3.输出结果列之间的分隔符改为逗号
    假设有两个文件file1.txt和file2.txt,内容如下:
    file1.txt:
    apple
    banana
    orange
    pear

    file2.txt:
    apple
    banana
    grape
    watermelon

    执行以下命令:
    comm –output-delimiter=, file1.txt file2.txt

    输出结果:
    apple,
    banana,
    pear,
    grape,
    watermelon

    解释:–output-delimiter参数用于指定输出列之间的分隔符,默认为制表符。通过指定分隔符为逗号,输出结果中的列之间就会使用逗号进行分隔。

    四、Comm命令的注意事项
    1.文件必须是有序的:Comm命令要求输入的文件必须是有序的,否则会得到不可预知的结果。可以使用sort命令对文件进行排序后再进行比较。

    2.输入文件不能包含重复行:Comm命令将根据行的内容来判断是否是重复行,如果输入文件中包含重复行,将导致输出结果错误。

    3.区分重复行:Comm命令默认不区分重复行,即如果一个文件中包含多个相同的行,则Comm命令只会将它计算为一个行。如果需要区分重复行,在比较之前可以使用uniq命令进行去重处理。

    4.输出结果格式:Comm命令的输出结果默认会有一些额外的空格或制表符,如果需要自定义输出格式,可以使用其他命令如awk、cut等对输出结果进行处理。

    总结:Comm命令是一个用于比较两个有序文件之间的区别的工具,它能够将两个文件的内容逐行进行比较,并输出不同之处。使用Comm命令可以快速找到文件的差异或比较两个文件之间的差异,对于文件比较和差异查找的工作非常有用。但需要注意的是,Comm命令要求输入文件是有序的,并且不能包含重复行。

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

400-800-1024

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

分享本页
返回顶部