两个文件内容比较comm、diff、grep

现象

系统先给了一个文件A,后因为有新增记录,又给了一个文件B,现在要通过A、B找出这部分新增记录

讲知识

通过查找,主要有三个Linux命令可以使用:

comm A B
diff A B
grep -f A B
comm

comm是对两个已经有序的文件进行比较,可以比较输出:仅在A中出现的、仅在B中出现的、在两个文件中都存在的。


直接使用comm的话会输出三列,第一列为A独有的、第二列为B独有的、第三列为C独有的,如果在comm后面加数字,则指明不展示这一列。

常用参数:

comm -1 A B 不显示在A文件中独有内容(显示B文件独有内容+两个文件共有)
comm -2 A B 不显示在B文件中独有内容
comm -3 A B 不显示同时在两个文件中都存在的内容
comm -12 A B 显示A与B公共的部分
comm -23 A B 显示A独有的
comm -13 A B 显示B独有的

comm --help

用法:comm [选项]... 文件1 文件2
逐行比较已排序的文件文件1 和文件2。

如果不附带选项,程序会生成三列输出。第一列包含文件1特有的行,第二列包含文件2特有的行,而第三列包含两个文件共有的行。

-1 不输出文件1 特有的行
-2 不输出文件2 特有的行
-3 不输出两个文件共有的行

--check-order 检查输入是否被正确排序,即使所有输入行均成对
--nocheck-order 不检查输入是否被正确排序
--output-delimiter=STR 依照STR 分列
--help 显示此帮助信息并退出
--version 显示版本信息并退出

Note, comparisons honor the rules specified by 'LC_COLLATE'.

示例:
comm -12 文件1 文件2 只打印在文件1 和文件2 中都有的行
comm -3 文件1 文件2 打印在文件1 中有,而文件2 中没有的行。反之亦然。

diff

diff是比较两个文件之间的不同,给出使两个一致的建议,diff有前后顺序,前面的为旧文件,后面的为新文件

常用参数:

diff A B  直接显示两个文件不同,并给出修改一致的建议(主要是对旧文件的建议)
diff -c A B  通过显示两个文件上下文,给出两个文件增减或删除信息,同时也会显示两个文件的修改时间
diff -y A B  模拟将屏幕分成两部分,显示B文件增加或删除的信息

使用diff A B时,对输出的说明:

1a2
> a

说明:B文件中新增了数据为a的第二行,需要把B的第二行添加(a)到A的第一行之后,以使两文件保持一致
要添加的行,用>标识,>指向新文件

4d5
< e

说明:A文件中第四行被删除(d),需要把A中该行删除
要删除的行,用<标识,<指向旧文件

6c7,9
< g
---
> h
> h
> i

说明:A中第六行被替换(c)成了B中的7-9行,需要将A的第六行内容进行替换

grep

grep主要用于查找过滤,使用<code>grep -f -v</code>可进行文件比较

grep -v -f a b  从b中剔除a中有的

总结

由于文件过大,不能进行排序,所有直接pass掉了comm……
由于只是想将新增记录输出,diff命令未找到合适的方法,放弃……
grep貌似可以,但由于文件太大了,报了个grep: Memory exhausted……
最终将俩文件入了数据库,通过数据库提取出了新增的记录0.0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第1章 小试牛刀 $ 是普通用户,# 表示管理员用户 root。 shebang:#!。sharp / hash ...
    巴喬書摘阅读 11,505评论 1 4
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,750评论 9 468
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,178评论 2 33
  • 本人是一枚结构设计师,在设计院从事建筑结构设计工作。从业5年多,最近工作时时长想到一些设计中遇到的点,于是打算在简...
    MonoCookie阅读 1,222评论 0 0
  • 从家里逃出来,我的尾巴还在锥心疼痛。难过看着自己原本柔顺美丽的尾巴已经被烧得乌黑光秃,如果不是院中的一缺缸水,也许...
    梦俣文阅读 1,618评论 0 5