vimdiff - 2つのファイルを比較する奇妙な問題

vimdiff - 2つのファイルを比較する奇妙な問題

次の2つのファイルを比較すると、比較結果が正しくありません。比較するには? 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

これを修正しても、次の行は異なります。

vimdiff2つの異なるファイルの違いを表示するのが混乱している理由は本当にわかりません。問題が正確に何であるかをより明確に説明するために、質問を更新する必要があるかもしれません。

助けることができる命令はおよびsort可能commですdiff

答え2

行が移動すると、vimは私が期待するように動作します。並んで置いてみると正しい言葉だ。

答え3

vimdiffは人間より賢いようですが、diff人間ほどスマートではありません。 file1 で次の行を探します。まったく同じfile2 の行の場合、その行を一致する行として扱います。行を一致させた後、file1に行があることを確認せずに、2つのファイルの連続する行をペアで比較します。似たようなfile2の行に。つまり、同期が中断されると、file1 で次の行が見つかるまで再同期されません。まったく同じfile2の行に。

〜のようにEmma Luoが指摘した。、File2に行0212がありません。したがって、この時点でvimdiffは同期されません。それ以降は同じ回線がないため、再同期されません。しかし、roaimaでさえ、File2に行0212を挿入した場合(ダミー行でも)、vimdiffが同期を維持し、次のことを無視するようです。

vimdiffスクリーンショット

これはあなたが望むものですか?

答え4

meld以下を使用して2つのファイルを比較してみてください。

関連情報