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

标签 csv comparison beyondcompare beyondcompare3

我有两种情况:

  1. 两个 csv 文件具有相同的列数,但列顺序不同。 csv 的第一行是标题行,并正确指示列名称
  2. 两个 csv 文件,其中包含一些不同的列,但实际上大多数列都存在于两个文件中。同样,csv 标题行指示可以比较的列名称

在上述两种情况下,BC3都无法自动匹配/更改列顺序。这可以通过 session 设置菜单手动完成,但相当耗时。

上面#2 的示例

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

之前(默认列按顺序匹配):

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

Before

之后(按名称手动匹配列):

After

是否有一种简单的方法可以轻松/自动配置此比较,就像我在第二张图片中手动完成的那样?

最佳答案

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

考虑三个文件

文件1.csv

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

文件2.csv

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

文件3.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

保存该 session 后,我编辑地址栏以将 file2.csv 替换为类似格式的 file3.csv,然后等待查看列设置是否得到维护,在我看来它们是 enter image description here

因此,我想您可以将这些列设置保留在任意示例 session 中,稍后您必须更改您希望在该时间点进行比较的实际文件的路径。当然有点尴尬,如果将这些设置作为预配置设置应用,就像在文件夹比较 session 中您可以保存要应用于新 session 的过滤器设置一样。

但是我很好奇为什么你的对话框看起来与我导航编辑设置的地方不同;特别是你的显示一个下拉菜单,上面写着“仅用于此 View ”。该下拉列表中还列出了哪些内容?我使用的是版本 3.3.8(内部版本 16340)

关于csv - 如何使用 Beyond Compare 按名称而不是顺序比较匹配列的数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12712610/

相关文章:

html - CSS : if is used opacity on DIV, 里面的东西都变轻了

javascript - 从转发的电子邮件中提取电子邮件地址和姓名

javascript - 这个没有运算符的 "if"是如何工作的?

version-control - 使用 mercurial 和 Beyond compare 3(bc3) 作为差异工具?

git show commit in beyond compare

docker - 如何在不运行的情况下浏览 docker 镜像?

csv - 是否可以导出到 CSV 并让标题包含空格?

mysql - 问题 - 将 csv 文件导入 Mysql Workbench

Clojure 对比其他 Lisp

postgresql - Postgres 比较来自 3 个不同表的相同行、计数和匹配