美文网首页
diff, 找不同

diff, 找不同

作者: halfempty | 来源:发表于2021-11-01 17:00 被阅读0次

新旧文件的比较, 在于分析程序的修改范围
知晓范围, 能够更好判断哪些功能受到影响, 哪些功能保持不变
从而将重心倾斜到被影响的功能

diffcomm均可以用于文件对比, 但功能上还是有明显差异

1 实例

1.1 构造测试数据

# cat old/file.txt 
FB:7C:01:C1:3C:D7
21:AE:C7:51:04:53
2A:6D:DC:94:07:11
41:A4:CC:84:A8:A7
02:1A:DC:5C:E7:87
CB:6A:41:2B:C8:F6
F7:76:7F:F7:27:5B
FC:8D:19:34:BB:46
F7:83:66:98:52:62
A2:2D:60:EF:A2:3E
# cat new/file.txt 
FB:7C:01:C1:3C:D7
21:AF:C7:51:04:53
2A:6D:DC:94:07:11
41:A4:CC:84:A8:A7
02:1A:DC:5C:E7:87
CB:6A:42:2B:C8:F6
F7:76:7F:F7:27:5B
FC:8D:19:34:BB:46
A2:2D:60:EF:A2:3E

1.2 comm对比

我们会发现A2:2D:60:EF:A2:3E结果不准确, 因为2个文件中均出现过

comm的官方应用场景是: compare two sorted files line by line, 对于未排序的文件, 比对结果可能与预期不符

comm --nocheck-order  -3 old/file.txt new/file.txt 
21:AE:C7:51:04:53
    21:AF:C7:51:04:53
CB:6A:41:2B:C8:F6
    CB:6A:42:2B:C8:F6
    A2:2D:60:EF:A2:3E
    
F7:83:66:98:52:62
A2:2D:60:EF:A2:3E

1.3 diff对比

diff结果符合预期, 但是初次使用, 可能不适应diff结果的输出格式, 不够直观

diff old/file.txt new/file.txt 
2c2
< 21:AE:C7:51:04:53
---
> 21:AF:C7:51:04:53
6c6
< CB:6A:41:2B:C8:F6
---
> CB:6A:42:2B:C8:F6
9d8
< F7:83:66:98:52:62

类似于beyondcompare的展现方式, -y参数

diff -y old/file.txt new/file.txt 
FB:7C:01:C1:3C:D7                                                  FB:7C:01:C1:3C:D7
21:AE:C7:51:04:53                                               |  21:AF:C7:51:04:53
2A:6D:DC:94:07:11                                                  2A:6D:DC:94:07:11
41:A4:CC:84:A8:A7                                                  41:A4:CC:84:A8:A7
02:1A:DC:5C:E7:87                                                  02:1A:DC:5C:E7:87
CB:6A:41:2B:C8:F6                                               |  CB:6A:42:2B:C8:F6
F7:76:7F:F7:27:5B                                                  F7:76:7F:F7:27:5B
FC:8D:19:34:BB:46                                                  FC:8D:19:34:BB:46
F7:83:66:98:52:62                                               <
A2:2D:60:EF:A2:3E                                                  A2:2D:60:EF:A2:3E

如果只想查看不同的行, 过滤相同的行, 使用--suppress-common-lines参数

diff -ty --suppress-common-lines old/file.txt new/file.txt 
21:AE:C7:51:04:53                                               |  21:AF:C7:51:04:53
CB:6A:41:2B:C8:F6                                               |  CB:6A:42:2B:C8:F6
F7:83:66:98:52:62                                               <

相关文章

  • diff, 找不同

    新旧文件的比较, 在于分析程序的修改范围知晓范围, 能够更好判断哪些功能受到影响, 哪些功能保持不变从而将重心倾斜...

  • Git 操作情景

    查看不同 git diffgit diff HEADgit diff --cached 撤销改动 还未提交到暂存区...

  • 2.5_git diff

    git diff 比对不同空间,具体如下图: git diff commitId1 commitId2:比较仓库R...

  • react17源码解读-diff

    react对diff做的优化 只对同级元素进行diff。 两个不同类型的元素产生不同的树。 可以通过key暗示哪些...

  • [Git]-004 Git操作本地版本库的一些操作

    1.git diff 查看文件内容不同 1.git diff filename 查看工作区和缓存区文件内容差...

  • Linux常用命令

    diff 对比两个目录的所有不同文件: diff -rq dirA dirB du -sh * 查看指定目录下,所...

  • linux比较两个文件

    diff寻找差异 ref:Linux diff --比较两个文件并输出不同之处 - 老莫小小朋友 - CSDN博客...

  • 每日一题-532. 数组中的 k-diff 数对

    题目: 给定一个整数数组和一个整数 k,你需要在数组里找到 不同的 k-diff 数对,并返回不同的 k-diff...

  • Git文件diff

    概述  Git的diff用于对比查看两个文件的不同。 Git的diff内容如下:  查看暂存区和工作区文件对比  ...

  • vue和react的diff算法比较

    相同点:Vue和react的diff算法,都是不进行跨层级比较,只做同级比较。 不同点: 1.Vue进行diff时...

网友评论

      本文标题:diff, 找不同

      本文链接:https://www.haomeiwen.com/subject/lanialtx.html