ウェブサイト検索

Linux のファイル比較および差分 (Diff) ツールのベスト 10


プログラマーやライターは、プログラム ファイルや通常のテキスト ファイルを作成するときに、2 つのファイルまたは同じファイルの 2 つのバージョンの違いを知りたい場合があります。

Linux 上で 2 つのコンピュータ ファイルを比較するとき、 それらの内容の違いを差分と呼びます。この説明は、有名な Unix コマンド ライン ファイル比較ユーティリティである diff の出力への参照から生まれました。

Linux 上で使用できるファイル比較ツールはいくつかありますが、このレビューでは、コードやその他のテキスト ファイルを作成する際に利用できる、最良のターミナルベースの GUI の差分ツールのいくつかを見ていきます。

1. diffコマンド

私は、2 つのコンピュータ ファイルの違いを表示するオリジナルの Unix コマンド ライン ツールから始めるのが好きです。 Diff はシンプルで使いやすく、ほとんどの Linux ディストリビューションにプリインストールされており、ファイルを 1 行ずつ比較し、それらの差分を出力します。

2 つのファイルを比較し、相違点を表示します。

diff file1.txt file2.txt

簡単に使用できるよう、diff の手動入力を確認してください。

man diff

diff ツールの機能を強化するラッパーがいくつかあります。これらには次のようなものがあります。

colordiffコマンド

Colordiff は、 diff と同じ出力を生成する Perl スクリプトですが、色と構文の強調表示が付いています。カスタマイズ可能な配色があります。

ここに示すように、yum、dnf、および apt-get または apt と呼ばれるデフォルトのパッケージ マネージャー ツールを使用して、Linux システムにColordiff をインストールできます。

sudo apt install colordiff         [On Debian, Ubuntu and Mint]
sudo yum install colordiff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/colordiff  [On Gentoo Linux]
sudo apk add colordiff             [On Alpine Linux]
sudo pacman -S colordiff           [On Arch Linux]
sudo zypper install colordiff      [On OpenSUSE]    

ディレクトリを再帰的に比較します。

colordiff file1.txt file2.txt

次に示すように、colordiff の手動エントリを確認してください。

man colordiff

wdiffコマンド

wdiff ユーティリティは、ファイルを単語ごとに比較するために使用される diff コマンドのフロントエンドです。このプログラムは、2 つのテキストを比較して、単語の変更や段落の補充を比較する場合に非常に役立ちます。

Linux システムに wdiff をインストールするには、次のコマンドを実行します。

sudo apt install wdiff         [On Debian, Ubuntu and Mint]
sudo yum install wdiff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/wdiff  [On Gentoo Linux]
sudo apk add wdiff             [On Alpine Linux]
sudo pacman -S wdiff           [On Arch Linux]
sudo zypper install wdiff      [On OpenSUSE]    

2 つのファイルを並べて表示し、単語レベルの違いを強調表示します。

wdiff file1.txt file2.txt

Linux での使用方法については、wdiff マニュアルを参照してください。

man wdiff

2. Vimdiffコマンド

Vimdiff は、 diff ユーティリティと比べて高度な方法で機能します。このユーティリティを使用すると、ユーザーは最大 4 つのバージョンのファイルを編集しながら、それらの違いを表示できます。これを実行すると、Vimdiff は Vim テキスト エディタを使用して 2 つ、3 つ、または 4 つのファイルを開きます。

vimdiff を使用するには、システムに Vim がインストールされている必要がありますが、インストールされていない場合は、パッケージ マネージャーを使用してインストールできます。

sudo apt install vim         [On Debian, Ubuntu and Mint]
sudo yum install vim         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/vim  [On Gentoo Linux]
sudo apk add vim             [On Alpine Linux]
sudo pacman -S vim           [On Arch Linux]
sudo zypper install vim      [On OpenSUSE]    

vimdiff を使用して 2 つのファイルを比較するには、次のコマンドを実行します。

vimdiff file1.txt file2.txt

vimdiff を使用して 3 つのファイルを比較することもできます。

vimdiff file1.txt file2.txt file3.txt

さらに詳細な情報と使用方法のオプションについては、実行してマニュアル ページにアクセスできます。

man vimdiff

3. ディフ

sdiff コマンドは、2 つのファイルを並べて比較し、それらの違いを強調表示するために使用されます。 2 つのファイルの内容が別々の列に表示されます。追加された行には ">" というプレフィックスが付けられ、削除された行には "<" というプレフィックスが付けられ、共通の行はプレフィックスなしで表示されます。 。

sdiff コマンドは通常、ほとんどの Linux ディストリビューションの標準インストールに付属しています。ただし、インストールされていない場合は、パッケージ マネージャーを使用してインストールできます。

sudo apt install diffutils         [On Debian, Ubuntu and Mint]
sudo yum install diffutils         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/diffutils  [On Gentoo Linux]
sudo apk add diffutils             [On Alpine Linux]
sudo pacman -S diffutils           [On Arch Linux]
sudo zypper install diffutils      [On OpenSUSE]    

2 つのファイルを比較し、相違点を並べて表示します。

sdiff file1.txt file2.txt

古い学校の diff ツールを見てきたので、Linux で利用できるいくつかの GUI diff ツールにすぐに移りましょう。

4. コンパレ

Kompare は、ファイル間の差異を比較および表示したり、ファイルをマージしたりできるグラフィカルな差分およびマージ ツールです。

Linux ディストリビューションにKompare をインストールするには、システム固有のパッケージ マネージャーを使用できます。

sudo apt install kompare         [On Debian, Ubuntu and Mint]
sudo yum install kompare         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/kompare  [On Gentoo Linux]
sudo apk add kompare             [On Alpine Linux]
sudo pacman -S kompare           [On Arch Linux]
sudo zypper install kompare      [On OpenSUSE]    

その機能には次のようなものがあります。

  • 複数の差分形式をサポート
  • ディレクトリの比較をサポート
  • 差分ファイルの読み取りをサポート
  • カスタマイズ可能なインターフェース
  • ソースファイルへのパッチの作成と適用

5. ディフマージ

DiffMerge は、ファイルを比較およびマージするためのクロスプラットフォーム GUI アプリケーションです。 2 つの機能エンジンがあり、2 つのファイル間の違いを表示し、行内の強調表示と編集をサポートする差分エンジンと、ファイル間で変更された行を出力するマージエンジンです。 3つのファイル。

次のような特徴があります。

  • ディレクトリ比較をサポート
  • ファイルブラウザの統合
  • 高度に構成可能

6. Meld – 差分ツール

Meld は軽量の GUI の差分およびマージ ツールで、ユーザーはファイル、ディレクトリ、およびバージョン管理されたプログラムを比較できます。開発者向けに特別に構築されており、次の機能が備わっています。

  • ファイルとディレクトリの二元比較および三元比較
  • ユーザーがさらに単語を入力するとファイル比較が更新されます
  • 自動マージ モードと変更されたブロックに対するアクションを使用することで、マージが容易になります
  • 視覚化を使用して簡単に比較
  • Git、Mercurial、Subversion、Bazaar などをサポート

Linux にMeld をインストールするには、パッケージ マネージャーを使用して公式リポジトリからインストールします。

sudo apt install meld         [On Debian, Ubuntu and Mint]
sudo yum install meld         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/meld  [On Gentoo Linux]
sudo apk add meld             [On Alpine Linux]
sudo pacman -S meld           [On Arch Linux]
sudo zypper install meld      [On OpenSUSE]    

7. 拡散 – GUI 差分ツール

Diffuse も、Linux で使用できる人気のある、無料の小型でシンプルな GUI の差分およびマージ ツールです。 Python で書かれており、ファイル比較とバージョン管理という 2 つの主要な機能を提供し、ファイル編集とファイルのマージを可能にし、ファイル間の差異も出力します。

Linux にDiffuse をインストールするには、次のようにパッケージ マネージャーを使用できます。

sudo apt install diffuse         [On Debian, Ubuntu and Mint]
sudo yum install diffuse         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/diffuse  [On Gentoo Linux]
sudo apk add diffuse             [On Alpine Linux]
sudo pacman -S diffuse           [On Arch Linux]
sudo zypper install diffuse      [On OpenSUSE]    

比較の概要を表示したり、マウス ポインタを使用してファイル内のテキスト行を選択したり、隣接するファイル内の行を一致させたり、別のファイルを編集したりできます。

その他の機能は次のとおりです。

  • 構文の強調表示
  • ナビゲーションを容易にするキーボード ショートカット
  • 無制限の取り消しをサポート
  • Unicode のサポート
  • Git、CVS、Darcs、Mercurial、RCS、Subversion、SVK、および Monotone をサポート

8. XXdiff – 差分およびマージツール

XXdiff は、Linux、Solaris、HP/UX、IRIX、DEC Tru64 などの Unix 系オペレーティング システム上で動作する、無料の強力なファイルとディレクトリの比較およびマージ ツールです。 XXdiff の制限の 1 つは、Unicode ファイルと diff ファイルのインライン編集がサポートされていないことです。

次の機能リストがあります。

  • 2 つ、3 つのファイルまたは 2 つのディレクトリの浅い再帰的比較
  • 水平方向の差異の強調表示
  • ファイルの対話型マージと結果の出力の保存
  • マージレビュー/ポリシングをサポート
  • GNU diff、SIG diff、Cleareddiff などの外部 diff ツールをサポート
  • スクリプトを使用して拡張可能
  • リソース ファイルとその他の多くのマイナー機能を使用して完全にカスタマイズ可能

9. KDiff3 – – 差分およびマージ ツール

KDiff3 は、KDevelop で作られたもう 1 つのクールなクロスプラットフォームの差分およびマージ ツールで、Linux、Mac OS X、Windows を含むすべての Unix 系プラットフォームで動作します。

Linux にKDiff3 をインストールするには、次のようにパッケージ マネージャーを使用できます。

sudo apt install kdiff3         [On Debian, Ubuntu and Mint]
sudo yum install kdiff3         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/kdiff3  [On Gentoo Linux]
sudo apk add kdiff3             [On Alpine Linux]
sudo pacman -S kdiff3           [On Arch Linux]
sudo zypper install kdiff3      [On OpenSUSE]    

2 ~ 3 つのファイルまたはディレクトリを比較またはマージでき、次の注目すべき機能があります。

  • 行ごと、文字ごとに相違点を示します
  • 自動マージをサポート
  • マージ競合に対処するための組み込みエディター
  • Unicode、UTF-8、その他多くのコーデックをサポート
  • 差分を印刷できるようにする
  • Windows エクスプローラー統合のサポート
  • バイトオーダーマーク「BOM」による自動検出もサポート
  • 手動によるラインの位置合わせをサポート
  • 直感的な GUI など

10. ティークディフ

TkDiff は、Unix の差分ツール用のクロスプラットフォームで使いやすい GUI ラッパーでもあり、2 つの入力ファイル間の相違点を並べて表示します。 Linux、Windows、Mac OS X 上で実行できます。

さらに、差分ブックマーク、簡単で素早いナビゲーションのための相違点のグラフィカル マップなど、その他の魅力的な機能がいくつかあります。

Linux にTkDiff をインストールするには、次のようにパッケージ マネージャーを使用できます。

sudo apt install tkdiff         [On Debian, Ubuntu and Mint]
sudo yum install tkdiff         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/tkdiff  [On Gentoo Linux]
sudo apk add tkdiff             [On Alpine Linux]
sudo pacman -S tkdiff           [On Arch Linux]
sudo zypper install tkdiff      [On OpenSUSE]    
結論

いくつかの優れたファイルとディレクトリの比較ツールとマージ ツールに関するこのレビューを読んだので、おそらくそれらのいくつかを試してみたくなるでしょう。

Linux で利用できる diff ツールはこれらだけではないかもしれませんが、いくつかの最高の機能を提供することが知られています。また、テストして、使用する価値があると思われる他の diff ツールについてもお知らせください。最高のものの一つに挙げられるでしょう。