Linuxには、2つのファイルを比較するための複数のオプションが用意されています。 2つのファイルを比較するための最も一般的なコマンドはdiff 。このチュートリアルでは、Linuxで2つのファイルを比較するために使用できるdiffコマンドとその他のオプションについて説明します。
チュートリアル全体で例として使用する2つのファイルを作成しましょう。
ファイル1のテキスト:
Welcome to the best source for learning Linux. How are you doing?
ファイル2のテキスト:
Welcome to Linux For Devices! How are you doing?
Linuxで2つのファイルを比較するための差分コマンド
Diffコマンドは、2つのファイルを比較する場合に最も一般的に使用されるコマンドです。名前は「違い」の略です 「。出力には、最初のファイルを変更して2番目のファイルと一致させるために実行する必要のある手順が示されます。
diffコマンドを使用するための構文は次のとおりです。
diff [option] [file 1] [file 2]
diffコマンドの動作を見てみましょう。
diff [file 1] [file 2]
出力には、一致しない行のみが表示されます。コマンドで指定されているように、行はファイルの順序で表示されます。
出力を理解してみましょう。
出力が「1c1」で始まることがわかります 。これは[range][abc][range]の形式です。
最初の範囲フィールドは最初のファイルに属し、2番目の範囲フィールドは2番目のファイルに属します。
真ん中の文字は次の3つのうちの1つです。
- a: 追加
- c: 変更
- d: 削除
この例では、「1c1」 変更が必要であることを意味します 行番号最初のファイルの1つ 2つのファイルが2番目のファイルの行番号1まで同期していることを確認します。
3d2 3行目を削除する必要があることを意味します 2つのファイルが行番号2で同期することを確認するために、最初のファイルの 2番目のファイルの。
コンテキストモード(diff -c)
コンテキストモードで2つのファイルの違いを確認するには、 -cを使用します フラグとdiffコマンド。
diff -c [file 1] [file 2]
出力を理解してみましょう。
出力は、ファイルに関するメタ情報から始まります。これは、ファイル名、作成日時、権限などの情報です。
次の行は***1,3****です。 この行には、比較中に考慮される開始行番号と終了行番号が含まれています。
この後、ファイル1のテキストが表示されます。ここでは、行の前に特定の記号が表示されています。これらの記号の意味を見てみましょう。
- +:最初のファイルに行がありません。最初のファイルに追加することも、2番目のファイルから削除することもできます。
- –: 2番目のファイルに行がありません。 2番目のファイルに追加するか、最初のファイルから削除することができます。
- ! : 両方の行で一致させるには、行を変更する必要があります。
同じ情報が2番目のファイルに対して繰り返されます。
統一フォーマット(diff -u)
統一フォーマット コンテキストモードの改良版です。構文は次のとおりです:
diff -u [file 1] [file 2]
同じ情報を簡潔に伝えていることがわかります。
Linuxで2つのファイルを比較するためのVimdiff
2つのファイルを比較するもう1つの方法は、Vimdiffです。 これは、システムにVimエディターがある場合にのみ機能します。
vimdiffを使用して2つのファイルを比較するための構文は次のとおりです。
vimdiff [file 1] [file 2]
これは出力がどのように見えるかです。 2つのファイルをVimエディターで並べて開きます。また、2つのファイルで一致しない部分も強調表示されます。 Vimエディタを使い慣れている場合はvimdiffを使用する必要があります。
Colordiff
Perlスクリプトcolordiffは「diff」のラッパーであり、同じ出力を生成しますが、かなり「構文」が強調表示されます。 また、色をカスタマイズするオプションもあります。
システムにcolordiffをインストールするには、aptコマンドを使用します。
sudo apt install colordiff
このコマンドは、システムにcolordiffをインストールします。 colodiffを使用して2つのファイルを比較するには、次を使用します:
colordiff [file 1] [file 2]
出力は、上記のdiffコマンドで生成されたものと同じであることがわかります。唯一の違いは、出力の色の違いです。
結論
このチュートリアルは、Linuxでファイルを比較するために使用できるさまざまな方法について説明しました。