Linuxを使用して2つのテキストファイルを比較する方法

このガイドでは、Linuxを使用して2つのファイルを比較し、その違いを画面またはファイルに出力する方法を説明します。

Linuxを使用してファイルを比較するために特別なソフトウェアをインストールする必要はありませんが、端末ウィンドウを開く方法を知る必要があります

リンクされたガイドが示すように、Linuxを使用して端末ウィンドウを開く多くの方法があります。 一番簡単なのは、CTRL、ALT、Tキーを同時に押すことです。

比較するファイルを作成する

このガイドに従って、「file1」というファイルを作成し、次のテキストを入力します。

壁に立っている緑色のボトル10本

壁に立っている緑色のボトル10本

1つの緑色のボトルが誤って落ちる場合

壁に立っている9本の緑色のボトル

次の手順に従ってファイルを作成できます。

  1. 次のコマンドを入力してファイルを開きます。nano file1
  2. ナノエディタにテキストを入力します
  3. CTRLとOを押してファイルを保存します。
  4. CTRLとXを押してファイルを終了する

次に、 "file2"という別のファイルを作成し、次のテキストを入力します。

壁に立っている緑色のボトル10本

緑色のボトル1本が誤って落ちる場合

壁に立っている9本の緑色のボトル

次の手順に従ってファイルを作成できます。

  1. 次のコマンドを入力してファイルを開きます。nano file2
  2. ナノエディタにテキストを入力します
  3. CTRLとOを押してファイルを保存します。
  4. CTRLとXを押してファイルを終了する

Linuxを使って2つのファイルを比較する方法

2つのファイルの違いを表示するためにLinuxで使用されるコマンドは、diffコマンドと呼ばれます。

diffコマンドの最も単純な形式は次のとおりです。

差分ファイル1ファイル2

ファイルが同じであれば、このコマンドを使用すると出力されませんが、違いがあるため、次のような出力が表示されます。

2,4c2,3

壁に立っている<10本の緑色のボトル

<1匹の緑色のボトルが誤って落ちる場合

<壁に立っている9本の緑色のボトル

...

>緑色のボトル1本が誤って落ちたら

>壁には9本の緑色のボトルが立っています

最初は出力が混乱しているように見えるかもしれませんが、用語を理解すればそれはかなり論理的です。

あなた自身の目を使って、2つのファイルの違いが次のように分かります:

diffコマンドの出力は、第1ファイルの第2行目と第2行目と第2ファイルの第2行目と第3行目との間に差異があることを示している。

次に、2番目のファイルに2つの異なる行が続き、最初のファイルから2から4までの行がリストされます。

ファイルが異なる場合の表示方法

ファイルが異なっているかどうかを知りたいだけで、どの行が異なっているかに関心がない場合は、次のコマンドを実行できます。

diff -q file1 file2

ファイルが異なる場合、以下が表示されます:

ファイルfile1とfile2は異なる

ファイルが同じ場合、何も表示されません。

ファイルが同じ場合にメッセージを表示する方法

コマンドを実行すると、正しく動作していることを知りたいので、ファイルが同じか異なるかにかかわらずdiffコマンドを実行するとメッセージが表示されるようにしたい

diffコマンドを使用してこの要件を達成するには、次のコマンドを使用できます。

diff -s file1 file2

ファイルが同じ場合は、次のメッセージが表示されます。

ファイルfile1とfile2は同一です

相違点を並行して生成する方法

違いが多い場合、2つのファイル間の違いが実際にどのようなものであるかについて、非常に迅速に混乱する可能性があります。

diffコマンドの出力を変更して、結果を並べて表示することができます。 これを行うには、次のコマンドを実行します。

diff -y file1ファイル2

ファイルの出力には、| 2つの行の間の違いを示すシンボル、削除された行を表示するための<と、追加された行を表示するための>です。

面白いことに、デモンストレーションファイルを使用してコマンドを実行すると、削除されたファイル2の最後の行を除いて、すべての行が異なるものとして表示されます。

列の幅を制限する

2つのファイルを並べて比較すると、ファイルにたくさんのテキストの列がある場合、読みにくいことがあります。

列の数を制限するには、次のコマンドを使用します。

diff - 幅= 5ファイルfile2

ファイルを比較する際の大文字と小文字の違いを無視する方法

2つのファイルを比較したいが、2つのファイル間で文字の大文字と小文字が同じかどうか気にしない場合は、次のコマンドを使用できます。

diff -iファイル1ファイル2

行末の空白を無視する方法

行の末尾に空白があるため、差分が読み込まれたファイルを比較するときに、次のコマンドを実行することで変更を示すように省略することができます。

差分-Zファイル1ファイル2

2つのファイル間のホワイトスペースの違いをすべて無視する方法

ファイル内のテキストのみに興味があり、スペースが他のものよりも多いかどうか気にしない場合は、次のコマンドを使用できます。

diff -w file1 file2

2つのファイルを比較するときに空白行を無視する方法

1つのファイルに空白行が追加されても構わない場合は、次のコマンドを使用してファイルを比較できます。

diff -B file1 file2

概要

詳細は、diffコマンドのマニュアルを参照してください。

男の違い

diffコマンドは、2つのファイルの違いを表示するだけの簡単な形式で使用できますが、Linuxパッチコマンドのこのガイドに示すように、パッチを使用してdiffファイルをパッチ戦略の一部として作成することもできます

ファイルを比較するために使用できるもう1つのコマンドは、このガイドで示されているcmpコマンドです。 これはファイルをバイトごとに比較します。