linux下comm命令

不及物动词 其他 166

回复

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

    comm命令是Linux操作系统中的一个文本处理工具,用于比较两个已排序的文件,并按照指定的规则输出它们的共同行、唯一行以及不同行。它的基本语法如下:
    comm [选项] 文件1 文件2

    1. 输出共同的行:
    使用comm命令时,可以通过选项控制输出哪些内容。例如,使用”-1″选项可以控制只输出文件1中存在的行,使用”-2″选项可以控制只输出文件2中存在的行,使用”-3″选项可以控制只输出在两个文件中共同存在的行。如果不使用任何选项,默认情况下comm命令将同时输出文件1和文件2中共同存在的行。

    2. 输出唯一的行:
    通过”-1″和”-2″选项还可以让comm命令分别输出只存在于文件1或文件2中的行。使用”-1″选项将只输出文件1中存在的行,使用”-2″选项将只输出文件2中存在的行。

    3. 输出不同的行:
    通过使用”-3″选项,comm命令可以输出在文件1和文件2中都存在的行。这些行通常是通过去除两个文件的共同行后剩余的行。

    示例:
    假设文件1的内容为:
    apple
    banana
    cherry
    grape
    orange

    文件2的内容为:
    apple
    banana
    mango
    watermelon

    执行命令:comm 文件1 文件2

    输出结果:
    apple
    banana
    cherry
    grape
    mango
    orange
    watermelon

    这里,共同存在的行是apple和banana,文件1中独有的行是cherry、grape和orange,文件2中独有的行是mango和watermelon。

    总之,comm命令可以方便地对两个已排序的文件进行比较,并输出它们的共同行、唯一行以及不同行,是Linux系统中常用的文本处理工具之一。

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

    comm命令是Linux操作系统中的一个文本处理工具,用于比较两个已排序的文件,并输出它们的交集、差异或并集。下面是comm命令的一些常用用法和选项:

    1. 基本用法:
    comm命令的基本使用语法如下:
    comm [选项] 文件1 文件2

    该命令会将文件1和文件2中的文本逐行进行比较,并将比较结果输出。结果会分为以下三个列:
    – 第一列:仅存在于文件1的行;
    – 第二列:仅存在于文件2的行;
    – 第三列:同时存在于文件1和文件2的行。

    2. 选项:
    – -1, –nocheck-order:在比较时不检查行的排序。默认情况下,comm命令会假设输入文件已按字典序排序,但使用该选项可以禁用此检查。
    – -2, –unique:只输出文件2中独有的行。
    – -3, –output-delimiter=字符:指定输出结果的分隔符,默认为制表符。
    – -i, –ignore-case:在比较时忽略大小写。
    – -z, –zero-terminated:使用NUL字符而不是换行符作为行分隔符。

    3. 比较已排序文件:
    comm命令主要用于比较已排序的文件。如果文件未排序,则输出结果将不准确。可以使用sort命令来对文件进行排序,然后再使用comm命令进行比较。

    4. 输出结果:
    comm命令的输出结果可以通过重定向保存到文件,或者通过管道传递给其他命令进行进一步处理。可以使用sed、awk等命令对输出结果进行文本处理。

    5. 示例:
    假设有两个文件file1和file2,它们的内容如下:
    file1:
    “`
    apple
    cat
    dog
    “`
    file2:
    “`
    cat
    dog
    elephant
    “`

    使用comm命令比较这两个文件:
    “`
    comm file1 file2
    “`
    输出结果为:
    “`
    apple
    cat
    dog
    elephant
    “`
    第一列为空,表示file1中没有仅存在的行;第三列为空,表示file2中没有仅存在的行;第二列包含共同的行cat和dog。

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

    一、介绍comm命令
    comm命令是Linux系统中的一个文本处理工具,用于比较两个已排序的文件,并根据比较结果输出结果。

    二、语法格式
    comm命令的语法格式如下:
    “`
    comm [OPTION]… FILE1 FILE2
    “`

    三、参数说明
    comm命令支持以下参数:
    – `–help`:显示帮助信息。
    – `-1`:仅显示在FILE1中出现的行。
    – `-2`:仅显示在FILE2中出现的行。
    – `-3`:仅显示在FILE1和FILE2中都出现的行。
    – `-i`:忽略大小写区别。
    – `-u`:只显示在FILE1或FILE2中出现的唯一行。
    – `-z`:使用NULL作为字段分隔符。
    – `–check-order`:检查输入文件是否已排序,如果已排序则提高效率。
    – `–nocheck-order`:不检查输入文件是否已排序。

    四、操作实例
    1. 基本使用
    首先,我们创建两个文件file1.txt和file2.txt,并分别添加一些内容:
    “`
    $ echo “apple” > file1.txt
    $ echo “banana” >> file1.txt
    $ echo “orange” > file2.txt
    $ echo “banana” >> file2.txt
    $ echo “grape” >> file2.txt
    “`
    然后,我们可以使用comm命令来比较这两个文件:
    “`
    $ comm file1.txt file2.txt
    “`
    输出如下:
    “`
    apple
    banana
    orange
    grape
    “`
    输出结果的第一列表示只在file1.txt中出现的行,第二列表示只在file2.txt中出现的行,第三列表示在两个文件中都出现的行。

    2. 显示不同的行
    如果我们只想显示在file1.txt和file2.txt中都出现的行,可以使用`-3`参数:
    “`
    $ comm -3 file1.txt file2.txt
    “`
    输出如下:
    “`
    orange
    “`
    这样就只显示了在两个文件中都出现的行。

    3. 忽略大小写区别
    使用`-i`参数可以忽略大小写区别,例如:
    “`
    $ echo “Apple” > file1.txt
    $ echo “BaNana” >> file1.txt
    $ echo “oRANGE” > file2.txt
    $ echo “Banana” >> file2.txt
    $ echo “Grape” >> file2.txt
    $ comm -i file1.txt file2.txt
    “`
    输出如下:
    “`
    apple
    banana
    orange
    grape
    “`
    可以看到,输出结果中大小写不敏感,并且并不会对大小写不同的行进行合并。

    4. 只显示唯一行
    使用`-u`参数可以只显示在file1.txt或file2.txt中出现的唯一行,例如:
    “`
    $ comm -u file1.txt file2.txt
    “`
    输出如下:
    “`
    apple
    “`
    这样就只显示了只在file1.txt中出现的唯一行。

    五、总结
    通过以上示例,我们了解了comm命令的基本使用和一些常用参数。comm命令是一个简单但实用的文本处理工具,可以帮助我们比较并处理已排序的文件,非常适合在Linux系统中进行文件数据的对比和处理。

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

400-800-1024

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

分享本页
返回顶部