"非贪婪"差异输出?

时间:2011-04-14 03:11:52

标签: diff

我想要像

这样的差异输出
- old line 1
+ new line 1
- old line 2
+ new line 2

而不是

- old line 1
- old line 2
+ new line 1
+ new line 2

有没有办法用GNU diff和/或其他标准程序执行此操作? --inhibit-hunk-merge看起来很有希望,但似乎已被弃用了。

上下文:我正在比较两个仅在几列不同的CSV文件。我想

  • 确保没有其他列被更改
  • 逐个比较更改的列(所有行都在这些列中更改)

计划是

  1. 转置两个CSV文件,以便diff可以比较列
  2. diff并检查输出中的每一行
  3. 我可以使用并排差异,但由于每条线都很长,包含每行的每个值,这对我的眼睛来说会非常紧张。

1 个答案:

答案 0 :(得分:2)

如下:

diff -y file1 file2 | perl -n -pe 's/(.*)\|\t(.*)/- $1\n+ $2/'