3

使用标准的 linuxdiff命令,我找不到在其输出中避免以下类型分组的方法(此处的输出列表unified format假设

这个问题针对的是每一行与另一个文件中的对应行略有不同的情况,并且在其对应行旁边查看每一行更有用。

我不想在比较输出中显示这样的组:

- line 1 - line 2 - line 3 + line 1 modified + line 2 modified + line 3 modified

要得到这个:

- line 1 + line 1 modified - line 2 + line 2 modified - line 3 + line 3 modified

当然,这是一个方便的问题,因为这可以通过编写自己的代码来后处理差异输出来完成,或者使用自己的算法与 lcs 算法不同。我认为像 wdiff 等变体不会有太大帮助,因为plain diff -U0输出格式非常适合我的需求,除了这个分组属性,而 wdiff 引入了其他方面对我的情况不是最佳的。

我正在寻找一种命令行方式,或者可以在代码中使用的库,而不是 UI 工具。

4

1 回答 1

0

我试图自己解决这个问题。我最接近的是:

diff -y -W 10000 file1 file2 | grep '|' | sed 's/\s*|\s*/\n/g'

一个问题是,这假设行的开头没有“空白”差异(或者您不关心它)。

于 2018-09-22T10:54:54.467 回答