【问题标题】:Line-by-line comparison (ignoring order) using Beyond Compare 3 or 4使用 Beyond Compare 3 或 4 逐行比较(忽略顺序)
【发布时间】:2014-12-16 15:17:56
【问题描述】:

我正在尝试使用 Beyond Compare 3 或 4 对文件中的内容进行逐行比较。有一个警告。这些行在文件中不一定具有相同的顺序。以下示例:

示例 1:

File 1 contents:
value1.key=mango
value2.key=pear

File 2 contents:
value2.key=pear
value1.key=mango

This should say "files identical" on comparison.

示例 2:

File 1 contents:
value1.key=mango
value2.key=pear
value3.key=apple

File 2 contents:
value2.key=pear
value3.key=banana
value1.key=mango

This should report only the following in the comparison:
value3.key=apple | value3.key=banana

示例 3:

File 1 contents:
value1.key=mango
value2.key=pear
value3.key=apple

File 2 contents:
value3.key=apple
value1.key=mango

This should report only the following in the comparison:
value2.key=pear

谁能告诉我这是否可以使用 Beyond Compare 实现?

【问题讨论】:

  • 如果允许您先对两个文件进行排序,这绝对可以使用diffcomm 完成,也可能使用 Beyond Compare(不过我不太熟悉) .如果您无法对文件进行排序,则可以使用 awkpythonperl 之类的东西来构建每个文件中行的哈希/映射/字典,然后检查它们是否等效...
  • 我已经考虑过了。我想知道我们是否可以不进行排序。 dos 中还有 {{sort}} 命令可用于对文件内容进行排序。

标签: file comparison beyondcompare3


【解决方案1】:

对于那些仍然感兴趣的人:

比较文件时可以选择文件格式(从工具栏按钮“格式”),只需选择“排序”即可实现这种比较。

【讨论】:

  • 不适用于我的情况,但在 Python 中打开我可以将文件加载为行列表,然后从列表中创建一组行,然后减去这些集合。我希望 BeyondCompare 将行作为集合加载,这不依赖于排序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
相关资源
最近更新 更多