vimdiff - Problema estranho comparando 2 arquivos

0

Quando eu comparo os 2 arquivos abaixo, está comparando isso errado. Você pode ajudar sobre como comparar? Todas as linhas estão disponíveis no arquivo2, mas não estão funcionando. Quando eu faço um "vim -d a b" a sua exibição como os valores estão faltando no arquivo2. Por favor, ajude a consertar isso.

Arquivo1:

BILLINGS TEST,0211,TBN Enlace,Cable Company,11429,Digital,2SDV,EIA158,58,256 QAM,158,999.000,Billings -
BILLINGS TEST,0212,ATRES SD,Cable Company,25733,Digital,2SDV,EIA158,59,256 QAM,158,999.000,DEC 16
BILLINGS TEST,0213,Fox Life,Cable Company,50854,Digital,2SDV,EIA158,60,256 QAM,158,999.000,Billings -
BILLINGS TEST,0214,Sorpresa,Cable Company,8777,Digital,2SDV,EIA158,61,256 QAM,158,999.000,Billings - AD
BILLINGS TEST,0215,Baby TV SAP,Cable Company,16036,Digital,2SDV,EIA158,62,256 QAM,158,999.000,Billings
BILLINGS TEST,0216,Semillitas,Cable Company,19867,Digital,2SDV,EIA158,63,256 QAM,158,999.000,Billings - AD
BILLINGS TEST,0217,Latele Novela,Cable Company,13353,Digital,2SDV,EIA158,64,256 QAM,158,999.000,Billings -
BILLINGS TEST,0218,CINE MEXICANO,Cable Company,12675,Digital,2SDV,EIA158,65,256 QAM,158,999.000,Billings -

Arquivo2:

BILLINGS TEST,0211,TBN Enlace,Cable Company,11429,Digital,2SDV,EIA158,58,256 QAM,158,999.000,CLMS Billings
BILLINGS TEST,0213,Fox Life,Cable Company,50854,Digital,2SDV,EIA158,60,256 QAM,158,999.000,CLMS Billings
BILLINGS TEST,0214,Sorpresa,Cable Company,8777,Digital,2SDV,EIA158,61,256 QAM,158,999.000,CLMS Billings Test,0903,0041,MT_DSG_Plant
BILLINGS TEST,0215,Baby TV SAP,Cable Company,16036,Digital,2SDV,EIA158,62,256 QAM,158,999.000,CLMS
BILLINGS TEST,0216,Semillitas,Cable Company,19867,Digital,2SDV,EIA158,63,256 QAM,158,999.000,CLMS Billings Test,0903,0041,MT_DSG_Plant
BILLINGS TEST,0217,Latele Novela,Cable Company,13353,Digital,Big Timber -
BILLINGS TEST,0218,CINE MEXICANO,Cable Company,12675,Digital,bozapx03 - AD,EIA006,3,256
BILLINGS TEST,0219,DE PELICULA,Cable Company,50197,Digital,grfapx01 - AD,EIA006,5,256
BILLINGS TEST,0220,DE PELICULA CLASSICOS,Cable Company,50596,Digital,havapx01 -

    
por Sandosh Kumar P 30.03.2017 / 23:46

4 respostas

4

Os dados não são claramente os mesmos nos dois arquivos. Se você olhar para a primeira linha marcada como diferente, há uma diferença.

O arquivo 1 contém esta linha onde o arquivo 2 não:

BILLINGS TEST,0212,ATRES SD,Cable Company,25733,Digital,2SDV,EIA158,59,256 QAM,158,999.0

Mesmo se você corrigir isso, as linhas posteriores serão diferentes.

Eu realmente não entendo por que você está confuso de que vimdiff está mostrando diferenças entre dois arquivos diferentes. Talvez você precise atualizar sua pergunta explicando mais claramente qual é realmente a questão?

Os comandos que podem ajudar são sort , comm e possivelmente diff .

    
por 31.03.2017 / 00:47
1

O vim está fazendo o que eu esperaria enquanto as linhas se moviam. Lado a lado, isso está correto.

    
por 31.03.2017 / 00:42
0
vimdiff parece ser um pouco mais esperto que diff , mas não é tão inteligente quanto uma pessoa. Onde encontra linhas no arquivo1 que são exatamente idênticos às linhas no arquivo2, trata-os como sendo linhas correspondentes. Depois de uma linha de correspondência, compara linhas sequenciais dos dois arquivos em uma base de pares sem olhar para ver se alguma linha no arquivo1 que são semelhantes às linhas no arquivo2. Em outras palavras, quando fica fora de sincronia, ele não é sincronizado novamente até encontrar linha (s) no arquivo1 que são exatamente idênticos à (s) linha (s) no arquivo2.

Como roaima apontou , seu arquivo2 está sem a linha 0212. Portanto, o vimdiff fica fora de sincronia nesse ponto. E já que não há linhas idênticas depois disso, nunca volta a sincronizar. Mas até roaima pareceu perder o fato de que, se você inserir uma linha 0212 no Arquivo2 (mesmo que seja uma fictícia), O vimdiff permanece em sincronia e faz isso:

É isso que você queria?

    
por 01.04.2017 / 21:49
-1

Tente usar meld para comparar dois arquivos

    
por 31.03.2017 / 02:45