如何使Beyond Compare比较按名称匹配列的数据文件,而不是按顺序

时间:2012-10-03 16:17:11

标签: csv comparison beyondcompare beyondcompare3

我有两种情况:

  1. 两个具有相同列数的csv文件,但列顺序不同。 csv的第一行是标题行,并正确指示列名称
  2. 两个具有不同列的csv文件,但实际上大多数列都存在于两个文件中。同样,csv标题行表示可以比较的列名
  3. 在上述两种情况下,BC3都无法自动匹配/更改列顺序。这可以通过Session Settings菜单手动完成,但相当耗时。

    上面的#2的例子

    请注意,在以下屏幕截图中,左侧文件中有一个名为priority的列,右侧文件没有该列。

    之前(默认列与订单匹配):

    请注意,在下图中,左侧文件的第5列priority正在与右侧文件的第5列companyjob进行比较。以下所有列比较同样不匹配。

    Before

    之后(使用名称手动匹配的列):

    After

    我是否有一种简单方法可以轻松/自动配置此比较,因为我在第二张图片中手动完成了这项操作?

1 个答案:

答案 0 :(得分:1)

在我看来,您可以在Beyond Compare(简称为会话)中保存比较会话,这是两个文件系统对象之间的实际差异。您上面改变的那些设置特定于该会话,但您希望它们适用于任何其他类似的会话。我想知道一种解决方法是使用手动输入的数据比较列设置来保存会话,并改变类似格式的文件的路径,使它们采用相同的列设置。让我看看......

考虑三个文件

file1.csv

Column1,Column2,Column3
A,B,C
A,B,C
A,B,C1

file2.csv

Column1,Column3,Column2
A,C,B
A,C,B
A,C1,B

file3.csv

Column1,Column3,Column2
A,C0,B
A,C,B
A,C,B

这是文件1和2 The default data session between file1.csv and file2.csv

之间的默认差异

在这里,我改变数据比较列设置Moving Column 3 up a level in Right file 现在,这两个文件与置换列之间没有任何变化。enter image description here

保存该会话后,我编辑地址栏,用类似格式的file3.csv替换file2.csv,等待查看是否保留了列设置,看起来像是enter image description here

所以我想你可以将这些列设置保存在一个任意的示例会话中,以后你必须将路径更改为你希望在那个时间点分散的实际文件。确实有点尴尬,将这些设置应用为预配置设置会更好,就像在文件夹比较会话中一样,您可以保存过滤器设置以应用于新会话。

我很好奇为什么你的对话框看起来与导航到编辑设置的地方有所不同;特别是你的下拉列表显示“仅用于此视图”。拉下来还列出了什么?我使用的是版本3.3.8(build 16340)