Uma abordagem que geralmente funciona é aumentar a quantidade de contexto , para que pequenas diferenças adjacentes sejam coletadas em uma exibição mais coesa.
- Na linha de comando
diff
, você faria isso com o-C
opção. - Com
vimdiff
, você faria isso com odiffopt
e o recursocontext
, por exemplo, este é o padrão implícito:
set diffopt=filler,context:6
e você pode mudar isso, por exemplo,
set diffopt+=context:9 set diffopt=filler,context:9
Além disso:
- o utilitário
diff
subjacente não tem como detectar que as linhas são trocadas entre si. - nem tem como comparar arquivos ignorando certas colunas.
O exemplo dado parece ser uma série de transações por data. Se houver alguma outra ordenação (que tende a fazer pedaços maiores de linhas inalteradas), a reordenação dos dados ajudaria.
Em princípio, você poderia usar o diffexpr
configuração e construção de um script que pré / pós-processa seus dados, de modo que apenas determinadas colunas sejam comparadas. Usei essa abordagem um tempo atrás para criar um utilitário de comparação de formato livre (nível de palavra). Mas fazer isso é uma boa quantidade de trabalho, e não é simples devido à incapacidade do diff de ignorar colunas de sua entrada.