是否有允许您排除列的差异实用程序?

use*_*160 6 diff deduplication

例如,我有一个文本文件,每一行都是一个长字符串。我想排除这个字符串的 2 个“段”,比如第 1-7 和 20-22 列。所以下面的两行将是匹配的:

123456789012345678901234567890 
------------------------------
xxxxxxxAAAAAAAAAAAAxxxBBBBBBBB
yyyyyyyAAAAAAAAAAAAyyyBBBBBBBB
Run Code Online (Sandbox Code Playgroud)

我知道 WinMerge 有一个“IgnoreColumns”插件,但我从来没有这样做过。在本例中,我将其重命名为 IgnoreColumns_1-7, 20-22.dll,在插件菜单中选择它,然后选择“Pre-Differ”。但它从未奏效。

我将比较不想修改的大文件。我不反对在与 sed 或类似的比较中对它们进行流式编辑,但我不想修改实际文件。我还没有选择将 sed 提供给 diff 只是因为我希望获得更直观的数据视图。

gar*_*ohn 6

以下适用于 Linux 和 Cygwin。

vimdiff <(cut -c8-19,23- file1) <(cut -c8-19,23- file2)
Run Code Online (Sandbox Code Playgroud)

由于 Cygwin 上的某种原因,Vim 提示每个文件自编辑开始以来已更改,并询问“[O]K,(L)oad File:”。O每次只需输入即可。

当然,您看不到省略的列,但这是一种直观的并排比较。


Dio*_*ogo 0

如果我能理解您的疑问,您正在尝试从文本文件中排除或选择特定列。如果是这样,您可以使用文本板应用程序来完成此操作。安装它并打开文本文件,然后在从文本中选择特定列的同时按“Alt”键。选择这些列后,您可以复制、剪切或删除您需要的每一列。