使用vimdiff查找特定列中的差异

时间:2013-06-26 09:00:05

标签: vim diff vimdiff

我有一个非常大的csv文件,其中每个字段的宽度相同(因此每行的宽度相同)。我需要找到特定列中的差异。

当我在vimdiff中打开2个文件时,大多数行被标记为差异,因为有一个定期更改的日期时间字段(例如,第10-15列)。对于差异,此字段的颜色正确为红色。但是我很感兴趣,比如专栏50-60,其中整个文件中只会有一些差异。

到目前为止,我唯一的解决办法是删除我不关心:%s/^.\{49}的文件部分,但这是非常滞后的,因为文件太大了。

是否有更好的解决方案而无需修改文件?

1 个答案:

答案 0 :(得分:5)

比较特定字段是否合适?

vimdiff <(awk -F',' '{print $3}' a.csv) <(awk -F',' '{print $3}' b.csv)

或者,如果您需要在多个字段之间进行比较:

vimdiff <(awk -F',' '{print $2","$3}' a.csv) <(awk -F',' '{print $2","$3}' b.csv)