comm

comm

按行比较两个已排序的文件。

概要

comm [OPTION]... FILE1 FILE2

主要用途

  • 按行比较两个已排序的文件。
  • FILE1FILE2-时,读取标准输入。
  • 无选项时输出三列,第一列为FILE1独有的行,第二列为FILE2独有的行,第三列为FILE1FILE2共有的行。

选项

-1                        不输出第一列。
-2                        不输出第二列。
-3                        不输出第三列。
--check-order             检查输入行是否正确的排序,即使它们确实是已排序过的。
--nocheck-order           不检查输入行是否正确的排序。
--output-delimiter=STR    使用STR作为输出列之间的分隔符而不是默认的TAB。
--total                   额外地增加第四列输出概要。
-z, --zero-terminated     设置行终止符为NUL(空),而不是换行符。
--help                    显示帮助信息并退出。
--version                 显示版本信息并退出。

返回值

返回0表示成功,返回非0值表示失败。

例子

文本 aaa.txt 内容

[root@localhost text]# cat aaa.txt 
aaa
bbb
ccc
ddd
eee
111
222

文本 bbb.txt 内容

[root@localhost text]# cat bbb.txt 
bbb
ccc
aaa
hhh
ttt
jjj

比较结果

[root@localhost text]# comm --nocheck-order aaa.txt bbb.txt 
aaa
                bbb
                ccc
        aaa
ddd
eee
111
222
        hhh
        ttt
        jjj

输出的第一列只包含在aaa.txt中出现的行,第二列包含在bbb.txt中出现的行,第三列包含在aaa.txt和bbb.txt中相同的行。各列之间以制表符(\t)作为分隔符。

比较排序过的文档

先通过 sort 将文件内容排序:

[root@localhost ~]# sort aaa.txt > aaa1.txt
[root@localhost ~]# sort bbb.txt > bbb1.txt

比较结果:

[root@localhost ~]# comm aaa1.txt bbb1.txt
111
222
        aaa
        bbb
        ccc
ddd
eee
    hhh
    jjj
    ttt

交集

打印两个文件的交集,需要删除第一列和第二列:

[root@localhost text]# comm aaa.txt bbb.txt -1 -2
bbb
ccc

差集

通过删除不需要的列,可以得到aaa.txt和bbb.txt的差集:

aaa.txt的差集

[root@localhost text]# comm aaa.txt bbb.txt -2 -3
aaa
ddd
eee
111
222

bbb.txt的差集

[root@localhost text]# comm aaa.txt bbb.txt -1 -3
aaa
hhh
ttt
jjj

注意

  1. 该命令是GNU coreutils包中的命令,相关的帮助信息请查看man -s 1 comminfo coreutils 'comm invocation'

若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/comm/

(0)
AuroraAurora站点维系者
上一篇 2023年 12月 7日 下午6:57
下一篇 2023年 12月 7日 下午7:02

相关推荐

  • ssh

    文章目录ssh补充说明语法选项参数实例背后故事将 SSH 协议端口号设为 22 的故事如何更改 SSH 服务的端口号配置 SSH 协议穿越防火墙出站的 SSH 连接反向通道是有风险…

    入门教程 2024年 3月 11日
  • iptables-restore

    文章目录iptables-restore补充说明语法选项实例 iptables-restore 还原iptables表的配置 补充说明 iptables-restore命令 用来还…

    入门教程 2023年 12月 19日
  • cpio

    文章目录cpio补充说明语法选项实例 cpio 用来建立、还原备份档的工具程序 补充说明 cpio命令 主要是用来建立或者还原备份档的工具程序,cpio命令可以复制文件到归档包中,…

    入门教程 2023年 12月 7日
  • lvscan

    文章目录lvscan补充说明语法选项实例 lvscan 扫描逻辑卷 补充说明 lvscan命令 用于扫描当前系统中存在的所有的LVM逻辑卷。使用lvscan指令可以发现系统中的所有…

    入门教程 2023年 12月 19日
  • readelf

    文章目录readelf补充说明ELF文件类型选项实例 readelf 用于显示elf格式文件的信息 补充说明 readelf命令 用来显示一个或者多个elf格式的目标文件的信息,可…

    入门教程 2024年 3月 1日
  • gzexe

    文章目录gzexe补充说明语法选项参数 gzexe 用来压缩可执行文件 补充说明 gzexe命令 用来压缩可执行文件,压缩后的文件仍然为可执行文件,在执行时进行自动解压缩。当您去执…

    入门教程 2023年 12月 14日
  • Git 查看提交历史

    Git 提交历史一般常用两个命令: git log – 查看历史提交记录。 git blame – 以列表形式查看指定文件的历史修改记录。 git log …

    2024年 4月 30日
  • su

    文章目录su补充说明语法选项参数实例 su 用于切换当前用户身份到其他用户身份 补充说明 su命令 用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。 语法…

    入门教程 2024年 3月 11日
  • iptraf

    文章目录iptraf补充说明语法选项 iptraf 实时地监视网卡流量 补充说明 iptraf命令 可以实时地监视网卡流量,可以生成网络协议数据包信息、以太网信息、网络节点状态和i…

    入门教程 2023年 12月 19日
  • pushd

    文章目录pushd概要主要用途选项参数返回值例子注意参考链接 pushd 将目录添加到目录堆栈顶部。 概要 pushd [-n] [+N | -N | dir] 主要用途 将目录添…

    入门教程 2024年 3月 1日
Translate »