Linuxで2つのファイルを比較する方法

How Compare Two Files Linux



2つのファイルを比較して違いを解読したい場合は、次のコマンドを使用します。 diff 使用されている。このガイドは、 diff 2つのファイルの違いを取得するためのさまざまなオプションを指定したコマンド。

だから、どのように diff コマンドは実際に機能しますか? NS diff コマンドは2つのファイルを比較し、両方のファイルの違いのリストを出力します。より正確には、2番目のファイルと一致するように最初のファイルで行う必要のある変更のリストが生成されます。 NS diff コマンドは、パッチを開発するために2つのソースコードファイルの違いを取得するためにプログラマーによっても使用されます。







例に飛び込む前に、ファイルの順序が非常に重要であることに注意してください。なぜなら diff コマンドは、ファイルの順序に基づいて出力を提供します。



Linuxでdiffコマンドを使用してファイルを比較する方法:

の構文 diff コマンドについては以下で説明します。



$diff [オプション] [file1] [file2]

まず、2つのファイルを作成します。次の名前でテキストファイルを作成しています test_file_1.txttest_file_2.txt 。これらのファイルには、わずかな違いがあるコンテンツが含まれています。





次に、次のコマンドを使用して違いを取得します。



$差分test_file_1.txt test_file_2.txt

標準出力には、コマンドで指定されたファイルの順序に従って一致する行が表示されました。それでは、出力をデコードしてみましょう。

ファイルの比較にはラベルが付けられており、各ラベルには両側に番号が付いています。形式は次のとおりです。

[ファイル1の行番号] [Label(a、c、d)] [ファイル2の行番号]

3つのラベルがあります:

  • –追加:最初のファイルにコンテンツを追加して、2番目のファイルと同期します。
  • NS –変更:2番目のファイルと一致するように最初のファイルのコンテンツに変更が必要であることを示します。
  • NS –削除:最初のファイルからコンテンツを削除して、2番目のファイルと一致させます。

2d1 最初のファイルの行番号2を削除して、行番号1の2番目のファイルと一致させることを示します。

同様に、 4c3 両方の行がわずかに異なるため、最初のファイルの4行目を2番目のファイルの行番号3に一致するように変更することを意味します。

違いを確認する別の方法があります。 diff とのコマンド -と オプション:

$diff -と -の 60test_file_1.txt test_file_2.txt

上記の出力では、 test_file_1.txt の内容が左側に表示されている間、 text_file_2.txt 右側にが表示されます。違いは記号で示されます。

  • | —2番目のファイルの行が異なります
  • > —2番目のファイルに行が追加されています
  • <— Line has been deleted from the second file

-Wは、2つのファイルのコンテンツ間の幅を示します。個別に取得して違いを確認するには、以下を使用します。

$diff -と -の 60 --suppress-common-linestest_file_1.txt test_file_2.txt

diffコマンドを使用して1行で出力を取得する方法:

ラベル付けされたメソッドをデコードするのが難しい場合は、より簡単なアプローチがあります。を使用して -NS オプションと diff コマンドは1行で出力を提供します。ただし、追加情報はありません。

$diff -NStest_file_1.txt test_file_2.txt

ファイルが異なる場合、上記のコマンドは出力を提供します。ファイルが同一の場合、出力はありません。それを実証するために、私はのコピーを作成しています test_file_1.txt 使用:

$cptest_file_1.txt test_file_3.txt

次の名前で新しいファイルが作成されます test_file_3.txt 同じコンテンツを含む test_file_1.txt もっている。今、使用します:

$diff -NStest_file_1.txt test_file_2.txt

両方のファイルの内容が類似しているため、出力はありません。

diffコマンドを使用してコンテキストモードでファイルの違いを確認する方法:

コンテキストモードで比較を行うには、 -NS オプションはで使用されます diff 指図:

$diff -NStest_file_1.txt test_file_2.txt

出力を分析してみましょう。

違いを維持するために、最初のファイルは作成日時とともに***で示され、2番目のファイルは—で示されます。

次の行は、比較中に考慮される行の範囲を示します。最初のファイルの場合は、 *** 1.6 **** 2番目のファイルの場合は —1.5—-

違いは記号で示されます。

  • +:最初のファイルに行がありません。両方のファイルに一致するように、最初のファイルに挿入するか、2番目のファイルから削除します。
  • –:行は最初のファイルには存在しますが、2番目のファイルには存在しません。両方のファイルに一致するように、2番目のファイルに挿入するか、最初のファイルから削除してみてください。
  • ! :一致させるには、線を変更する必要があります。

diffコマンドを使用して統合モードでファイルの違いを確認する方法:

統合モードはコンテキストモードと非常に似ていますが、冗長な情報がありません。私たちが使用するフラグは -u

$diff -utest_file_1.txt test_file_2.txt

出力では、最初のファイルは—で示され、2番目のファイルは+++で示されます。 2行目は、両方のファイルで比較するために考慮される行数を示し、次に、削除、追加、または変更されるコンテンツとそれらの記号を示します。両方のファイルに同様の行を持つ記号はありません。

diffコマンドの使用中に大文字と小文字の区別を無視する方法:

大文字と小文字の区別を無視してファイルを比較する場合は、 -私 国旗:

$diff -私test_file_1.txt test_file_2.txt

デモンストレーションのために、私は NSDeepin 小さい最初のファイル:

最初のコマンドに見られるように、違いが示されています。使用中 -私 その違いは取り除かれました。

の他のいくつかの便利なオプション diff コマンドは以下のとおりです。

オプション 説明
-に このオプションは、すべてのファイルをテキストファイルとして扱います
-NS 行がすべて空白の変更は無視されます
-と このオプションはタブ拡張を無視します
-私 すべての行が一致する変更は無視されます
-NS 2つのファイルが同一の場合に出力を提供します
-の すべての空白を無視します
-と 行末の空白を無視します

Vimエディターを使用して2つのファイルを比較する方法:

2つのファイルを比較する別の方法は、 vimdiff 指図。そのためには、vimをインストールする必要があります:

$sudoaptインストール 私が来た

ここで、2つのファイルを比較するには、次を使用します。

$vimdiff test_file_1.txt test_file_2.txt

両方のファイルが並べて開かれます。一致しない部分が強調表示されます。

colordiffを使用して2つのファイルを比較する方法:

別のアプローチは、 diff 指図。色を追加することで、比較をより識別しやすくすることができます。使用するには:

$sudoaptインストールcolordiff

ファイルを比較するには、次を使用します。

$colordiff test_file_1.txt test_file_2.txt

交換できます diffcolordiff の標準出力を取得するには diff 色付きのコマンド。

結論:

LinuxおよびmacOSでさえファイルを比較するために、使用されるユーティリティはdiffと呼ばれます。 diffユーティリティは、2つのファイルを比較し、2つのファイルの違いに関する情報を提供します。開発者は主にdiffコマンドを使用してパッチファイルを作成します。

このガイドでは、 diff コマンドと、それを使用して異なるオプションを持つ2つのファイルを比較する方法。使い方も学びました colordiff ファイルの違いをより認識しやすくするため。ただし、ターミナルベースのユーティリティが使いにくい場合は、Kompare、DiffMerge、Meld — Diff Tool、Diffuse — GUI GiffToolなどのGUIベースのツールもあります。