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コマンドラインオプションを使用してこの動作を抑制できます:

次に、知っておくべきスペースに関連するいくつかの他のオプションがあります。以下はそのリストです:
-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 spaceQ4. 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 file2Q7. sdiffの出力をファイルに保存するには?
-oまたは–outputオプションを使用すると、sdiffの結果を出力ファイルに保存できます。例:
sdiff --output=/tmp/mydiff.txt file1 file2Q8. 左側の列のみを出力するには?
コマンドラインオプション-lまたはその長い形式–left-columnを使用すると、結果として左側の列のみを取得できます。
sdiff --left-column file1 file2結論
Sdiffツールは多くの機能を提供しますが、その学習曲線はそれほど急ではありません。少し練習すれば、すぐに使えるようになるでしょう。ここでは、ほとんどのコマンドラインオプションについて説明しました。詳細については、sdiffのmanページをご覧ください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。