ここHowtoForgeでは、ファイルの違いを見つけることに焦点を当てた複数のコマンドラインユーティリティについてすでに説明しました。ただし、そのようなツールは他にもいくつかあります。このチュートリアルでは、 sdiffと呼ばれるそのようなコマンドについて説明します。 わかりやすい例をいくつか使用します。
この記事に記載されているすべての例は、Ubuntu16.04LTSでテストされていることに注意してください。
Linuxsdiffコマンド
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つのファイルが最初の行自体で異なることを示しています。ただし、必要に応じて、sdiffに大文字と小文字を区別させないようにすることができます。これは-iコマンドラインオプションを使用して実行できます。
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 space
Q4。 sdiffに空白行を無視させる方法は?
スペースと同様に、デフォルトでは、sdiffコマンドは空白行も考慮に入れます。例:
ただし、-Bコマンドラインオプションを使用すると、コマンドで空白行を無視することができます。
sdiff -B file1 file2
したがって、この場合、sdiffコマンドは空白行を違いと見なしていなかったことがわかります。
Q5。 sdiffにCommonLinesを抑制させる方法は?
ファイルにいくつかの共通行が含まれていて、sdiffコマンドで共通行を抑制したい場合は、-sコマンドラインオプションを使用してこれを行うことができます。
sdiff -s file1 file2
Q6。 sdiffに別のdiffプログラムを使用させる方法は?
デフォルトでは、sdiffはdiffを使用して比較を実行します。ただし、必要に応じて、diffを選択したプログラムに置き換えることもできます。これを行うには、入力としてプログラム名を必要とする--diff-programオプションを使用します。
sdiff --diff-program=[PROGRAM] file1 file2
Sdiffツールは多くの機能を提供する可能性がありますが、学習曲線はそれほど急ではありません。あなたがする必要があるのは少し練習することだけです、そしてあなたは行ってもいいはずです。ここでは、コマンドラインオプションの大部分について説明しました。詳細については、sdiffのmanページにアクセスしてください。