다음 두 파일을 비교해 보면 비교 결과가 잘못되었습니다. 비교하는 방법? file2의 모든 행을 사용할 수 있지만 작동하지 않습니다. "vim -da b"를 실행하면 file2에 누락된 값이 표시됩니다.
파일 1:
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 -
파일 2:
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 -
답변1
두 파일의 데이터는 분명히 동일하지 않습니다. 다르게 표시된 첫 번째 행을 보면 차이가 있음을 알 수 있습니다.
파일 1에는 다음 줄이 포함되어 있지만 파일 2에는 다음 줄이 포함되어 있지 않습니다.
BILLINGS TEST,0212,ATRES SD,Cable Company,25733,Digital,2SDV,EIA158,59,256 QAM,158,999.0
이를 수정하더라도 다음 줄은 달라집니다.
vimdiff
서로 다른 두 파일의 차이점을 표시하는 것에 대해 왜 혼란스러워하는지 정말 이해가 되지 않습니다 . 문제가 정확히 무엇인지 더 명확하게 설명하기 위해 질문을 업데이트해야 할 수도 있습니다.
도움이 될 수 있는 명령은 sort
및 comm
가능합니다 diff
.
답변2
줄이 이동함에 따라 vim은 내가 기대하는 대로 작동합니다. 나란히 놓고 보니 맞는 말이다.
답변3
vimdiff는 인간보다 똑똑해 보이지만 diff
인간만큼 똑똑하지는 않습니다. file1에서 다음 줄을 찾습니다.정확히 똑같다file2의 행의 경우 해당 행을 일치하는 행으로 처리합니다. 라인을 일치시킨 후 file1에 라인이 있는지 확인하지 않고 두 파일의 연속 라인을 쌍으로 비교합니다.비슷한file2의 줄에. 즉, 동기화가 중단되면 file1에서 다음 줄을 찾을 때까지 다시 동기화되지 않습니다.정확히 똑같다file2의 줄에.
~처럼Emma Luo가 지적했습니다., File2에 0212 행이 누락되었습니다. 따라서 이 시점에서 vimdiff는 동기화되지 않습니다. 그 이후에는 동일한 회선이 없으므로 다시 동기화되지 않습니다. 그러나 roaima조차도 File2에 라인 0212를 삽입하면(비록 더미 라인이더라도) vimdiff가 동기화를 유지하고 다음을 수행한다는 사실을 무시하는 것 같습니다.
이것이 당신이 원하는 것입니까?
답변4
meld
다음을 사용하여 두 파일을 비교해 보십시오 .