博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux下comm命令比较两个文件的异同
阅读量:6874 次
发布时间:2019-06-26

本文共 1181 字,大约阅读时间需要 3 分钟。

在操作文件的时候我们可能需要找到两个文件的交集、并集或补集,Linux系统下可以用一个简单的命令实现--comm命令,不同于diff命令,它需要事先排好序,但不是一行一行的比较差异,下面是帮助文档说明

用法:comm [选项]... 文件1 文件2逐行比较已排序的文件文件1 和文件2。如果不附带选项,程序会生成三列输出。第一列包含文件1 特有的行,第二列包含 文件2 特有的行,而第三列包含两个文件共有的行。  -1        不输出文件1 特有的行  -2        不输出文件2 特有的行  -3        不输出两个文件共有的行  --check-order            检查输入是否被正确排序,即使所有输入行均成对  --nocheck-order        不检查输入是否被正确排序  --output-delimiter=STR    依照STR 分列      --help        显示此帮助信息并退出      --version        显示版本信息并退出注意,比较操作遵从"LC_CPLLATE"所定义的规则。示例:  comm -12 文件1 文件2  只打印在文件1和文件2中都有的行  comm -3  文件1 文件2  打印在文件1中有,而文件2中没有的行。反之亦然。
$cat ll.txt123456$cat  ll2.txt243567comm -12 ll.txt ll2.txt$comm -12 ll ll2 24comm: 文件2 没有被正确排序56-------------------------$comm -3 ll.txt ll2.txt 13comm: 文件2 没有被正确排序    3    7我们会看到3没有被正常排序,comm会给出警告,并把3规为两个文件互不相同的项我们可以用--nocheck-order参数消除警告,但是不改变结果$comm -12 ll.txt ll3.txt --nocheck-order23456--check-order 参数只输出正确排序之前的项$comm -12 ll.txt ll2.txt --check-order24comm: 文件2 没有被正确排序
$sort ll2.txt > ll3.txt$comm -12 ll.txt ll3.txt23456
总结:comm命令可比较两个文件,一般要求文件需要事先排序,它与diff命令的区别在于,comm不是逐行比对的,可以提取出两个文件的相同部分和特异部分
具体例子和详细说明见以下链接:https://linux.cn/article-8583-1.html

 

转载于:https://www.cnblogs.com/xlij1205/p/10564020.html

你可能感兴趣的文章
常用正则表达式
查看>>
【rqnoj 74】24点
查看>>
iOS学习笔记6-GET POST方法
查看>>
Java之Collections.emptyList()、emptySet()、emptyMap()的作用和好处以及要注意的地方
查看>>
音视频格式简解
查看>>
LF.85.Determine If One String Is Another's Substring
查看>>
[改善Java代码]断言绝对不是鸡肋
查看>>
FTP操作类的使用
查看>>
JavaWeb之数据库连接池
查看>>
用Javascript获取页面元素的位置
查看>>
javascript弹出对话框
查看>>
112. Path Sum - Easy
查看>>
CentOS7安装IPython notebook
查看>>
openstack常用命令
查看>>
JSON解析
查看>>
解决 CentOS7 安装完成后ifconfig命令不能用
查看>>
系统共享配置检测
查看>>
GitHub vs. Bitbucket 不只是功能不同
查看>>
C工具库10:带引用计数的buffer
查看>>
使用kendynet构建异步redis访问服务
查看>>