【问题标题】:Compare content of two files (diff)比较两个文件的内容(差异)
【发布时间】:2021-06-30 22:50:35
【问题描述】:

我想要做的是比较两个不同文件的内容。我不知道我做错了什么,但是我在网上搜索的关于 diff 命令的东西没有用。

例如如果fileA的内容是这样的:

AAA:111
BBB:222
CCC:333

而fileB的内容是:

AAA:111
BBB:222

我希望看到的输出只是 CCC:333 的差异。没有“”,只是简单的 CCC:333。我想稍后在我正在处理的 bash 脚本中使用它。

如果这些文件被反转也有关系吗?我的意思是如果它是包含 CCC:333 的 fileB?

我不知道这是否重要,但我正在处理的文件是 MAC 地址。

我尝试使用的 diff 命令是否区分大小写?

【问题讨论】:

  • 不清楚你想要什么。文件 A 中所有不在文件 B 中的行? either 文件中的所有行不在另一个文件中?顺序重要吗?
  • sort fileA fileB | uniq -u?
  • 如果文件已排序,您可以使用comm

标签: bash diff


【解决方案1】:

您可以使用两个diff 选项,如下所示:

diff --changed-group-format='%<' --unchanged-group-format='' fileA fileB

【讨论】:

    【解决方案2】:

    如果其他人正在寻找这些答案,我只想补充说它们都有效!

    Cyrus 的 sort 和 uniq 解决方案将显示这两个文件的差异(如果不同之处在于它们都有 aaa 和 bbb 行,但只有一个有 xxx,另一个有 yyy,它会打印出那些两行 xxx 和 yyy)。

    Philippe 的 diff 命令解决方案可以为您提供不同的输出,因为这取决于您是先放 fileA 然后放 fileB 还是先放 fileB 然后放 fileA。 自己测试一下。

    如有错误请指正!

    感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-28
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      相关资源
      最近更新 更多