Linuxコマンド · 1 min read · Sep 20, 2025

初心者のためのLinux sdiffコマンドチュートリアル (8つの例)

ここHowtoForgeでは、ファイルの違いを見つけることに焦点を当てた複数のコマンドラインユーティリティについてすでに議論しました。しかし、さらに多くのツールがあり、このチュートリアルでは、sdiffというコマンドについて、わかりやすい例を使って説明します。

この記事で紹介するすべてのsdiffコマンドの例は、Ubuntu 22.04 LTSでテストされています。

Linux sdiffコマンド

sdiffコマンドは、ファイルの違いを横並びの形式で表示します。以下がその構文です:

sdiff [OPTION]... FILE1 FILE2

そして、manページでは次のように説明されています:

sdiff - side-by-side merge of file differences  
Side-by-side merge of differences between FILE1 and FILE2.

以下は、このツールがどのように機能するかを理解するためのQ&A形式の例です。

Q1. sdiffコマンドはどのように機能しますか?

基本的な使い方は簡単で、ファイル名を引数としてsdiffコマンドを実行するだけです。例えば:

sdiff file1 file2

私の場合、file1とfile2は全く同じでした。

そして、sdiffがこの場合に生成した出力は次の通りです:

このタイプの出力は、ファイルに違いがないことを意味します。

Q2. sdiffが大文字と小文字を無視するようにするには?

file1とfile2に次の行が含まれているとします:

コマンド:

sdiff file1 file2

次の出力が生成されます:

2列目の最初の行のパイプ(|)は、2つのファイルが最初の行自体で異なることを示しています。しかし、必要であれば、-iコマンドラインオプションを使用してsdiffに大文字と小文字を無視させることができます。

sdiff -i file1 file2

これで、出力が2つのファイルが同一であることを示しているのがわかります。つまり、大文字と小文字の違いが無視されました。

Q3. sdiffがスペースを無視するようにするには?

ファイルのいずれかにスペースが含まれている場合、sdiffコマンドはデフォルトで違いを表示します。しかし、必要であれば、-Zコマンドラインオプションを使用してこの動作を抑制できます:

sdiffがスペースを無視する方法

次に、知っておくべきスペースに関連するいくつかの他のオプションがあります。以下はそのリストです:

-E, --ignore-tab-expansion  
              ignore changes due to tab expansion
-b, --ignore-space-change  
              ignore changes in the amount of white space
-W, --ignore-all-space  
              ignore all white space

Q4. sdiffが空白行を無視するようにするには?

スペースと同様に、デフォルトでsdiffコマンドは空白行も考慮します。例えば:

sdiffが空白行を無視する方法

しかし、-Bコマンドラインオプションを使用することで、コマンドに空白行を無視させることができます。

sdiff -B file1 file2

出力行

この場合、sdiffコマンドは空白行を違いとして考慮しなかったことがわかります。

Q5. sdiffが共通の行を抑制するようにするには?

ファイルに共通の行が含まれていて、sdiffコマンドに共通の行を抑制させたい場合は、-sコマンドラインオプションを使用できます。

sdiff -s file1 file2

Q6. sdiffが異なるdiffプログラムを使用するようにするには?

デフォルトでは、sdiffは比較を行うためにdiffを使用します。しかし、必要であれば、好みのプログラムにdiffを置き換えることもできます。これを行うには、プログラム名を入力として必要とする–diff-programオプションを使用します。

sdiff --diff-program=[PROGRAM] file1 file2

Q7. sdiffの出力をファイルに保存するには?

-oまたは–outputオプションを使用すると、sdiffの結果を出力ファイルに保存できます。例:

sdiff --output=/tmp/mydiff.txt file1 file2

Q8. 左側の列のみを出力するには?

コマンドラインオプション-lまたはその長い形式–left-columnを使用すると、結果として左側の列のみを取得できます。

sdiff --left-column file1 file2

結論

Sdiffツールは多くの機能を提供しますが、その学習曲線はそれほど急ではありません。少し練習すれば、すぐに使えるようになるでしょう。ここでは、ほとんどのコマンドラインオプションについて説明しました。詳細については、sdiffのmanページをご覧ください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。