2つのファイルの内容を比較する方法は?


1

何百ものペアファイルの内容を比較するという使命を得ました。各ペアをすばやく比較し、そのペアが(コンテンツで)等しいかどうかを答える必要があります。ファイルは、テキストファイルまたはバイナリファイルです。助けてくれませんか?

  1. すべてのUNIX \ Linuxエディションで動作するコマンドを探しています
  2. (時間とパフォーマンスに関して)最も効率的なコマンドを使用したい
  3. テキストファイルとバイナリファイルをサポートするコマンドが望ましい
  4. OSの一部として(サードパーティではなく)インストールされるコマンドを希望します

ありがとうございました!


2
私がお勧めしますdiff-- man diff
コーディング

回答:


7

ファイルが異なるかどうかだけを知る必要がある場合は、を使用しますcmp。または、より正確には:

if cmp "$FILE1" "$FILE2"; then
  echo same
else
  echo different
fi

(または、等しい/等しくない場合に必要なこと)。cmpposixライクなシステムに存在する必要があり、バイナリファイルとテキストファイルの両方で動作し、違いを見つけるとすぐに戻ります。(また、ラインに対応していないため、ラインの終端を見つけるのに時間を浪費しません。)


3

diffコマンドは仕事をする必要があります。-qオプションを使用して、内容が異なるファイル名のみを印刷します。

diff -q file1 file2

ペアのディレクトリ内のファイル全体を使用する-r場合は、オプションを追加します

diff -r -q dir1 dir2

詳細については、次を入力してドキュメントを参照してください。 man diff

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.