comm命令 – 比较两个已排过序的文件

Linux命令 统信UOS系统管理员 4周前 (03-19) 11次浏览 0个评论 扫描二维码

comm 命令会一列列地比较两个已排序文件的差异,并将其结果显示出来,如果没有指定任何参数,则会把结果分成 3 行显示:第 1 行仅是在第 1 个文件中出现过的列,第 2 行是仅在第 2 个文件中出现过的列,第 3 行则是在第 1 与第 2 个文件里都出现过的列。若给予的文件名称为”-“,则 comm 指令会从标准输入设备读取数据。

语法格式:[参数] [文件 1][文件 2]

-1  不显示只在第 1 个文件里出现过的列
-2 不显示只在第 2 个文件里出现过的列
-3 不显示只在第 1 和第 2 个文件里出现过的列
–help 在线帮助
–version 显示版本信息

参考实例

对比文件 filename1.txt 和 filename2.txt:

[root@xtuos.com ~]# comm filename1.txt filename2.txt 

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

[root@xtuos.com ~]# comm filename1.txt filename2.txt -1 -2

打印出两个文件中不相同的行,需要删除第三列:

[root@xtuos.com ~]# comm filename1.txt filename2.txt -3 | sed 's/^\t//'

相较于 filename2.txt,filename1.txt 的差集 :

[root@xtuos.com ~]# comm filename1.txt filename2.txt -2 -3

相较于 filename1.txt,filename2.txt 的差集 :

[root@xtuos.com ~]# comm filename2.txt filename1.txt -2 -3


统信UOS之家 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:comm命令 – 比较两个已排过序的文件
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址