SDIFF(1)

名称
sdiff - 2 つのファイルの違いを調べ、インタラクティブにマージを行う

書式
sdiff -o outfile [options] from-file to-file

解説
sdiff は、2 つのファイルつを読み込んで 1 行ずつ比較していき、違いがあっ た行について、ユーザにどう処理するか問い合わせながら、マージしていき、 結果を outfile に出力するコマンドです。 もし、 from-file としてディレクトリを指定し、 to-file がディレクトリでなかった場合、 sdiff は、 to-file で指定したファイル名と同じ名前のファイルを from-file のディレクトリから捜して、そのファイルとの間で比較を行いま す。その逆も同じです。 from-file と to-file の両方にディレクトリを指定することはできません。 通常、 sdiff は、2 つのファイルを比較し易いよう、1 行の左側と右側に分けて表示します。 表示の意味は次の通りです。

file1とfile2が同じ行の場合
    file1の内容      file2の内容
    file1にだけにある行の場合
    file1の内容    <

file2にだけにある行の場合
    > file2の内容

file1とfile2が異なる場合
    file1の内容    | file2の内容

オプション -o (もしくは、 --output ) を指定しない場合は、単にこの表示を 行うだけです。オプション -o で出力ファイルを指定すると、 sdiff は、 from-file と to-file が同じでない行があった場合、`%' のプロンプトを表示して、 どう処理するか聞いて来ます。この時、キーボードから次のような入力を行う ことで、マージ処理を決定できます。

l   左側 (from-file) の内容をマージする

r   右側 (to-file) の内容をマージする

e l 左側の内容をエディトした上で、マージする

e r 右側の内容をエディトした上で、マージする

e   新たに内容をエディトした上で、マージする

s   以後、同一の行については、表示をしない

v   以後、同一の行についても、表示を行う

q   マージ処理を終了する

エディト時は、環境変数 EDITOR で指定されていれば、そのエディタが、なけれ ば、 ed が起動されます。

GNU sdiff の主なオプションは以下のものがあります。他にも多くのオプションがあります。

なお、 -- だけの指定はオプションの終了を意味し、以降は from-file および to-file の指定になるものとみなします。この方法を使えば、 - で始ま るようなファイル名など、 sdiff がオプションの指定と誤って解釈してしまうよ うな場合に有効です。

-a

--text
    テキストファイルでないようなものについても、全てのファイルをテ キストとみなして、1 行ずつ比較していきます。

-b

--ignore-space-change
    空白の数の違いを無視します。

-W

--ignore-all-space
    比較時に、空白は無視するようにします。

-B

--ignore-blank-lines
    空行が入っているもしくは足りないなどの違いは無視します。

-d

--minimal
    小さい違いを見つけるアルゴリズムを変更します。これをつけると sdiff が遅くなります。

-H

--speed-large-files
    大きなファイルで、小さな違いがあちこちにあるような物を扱う時に、 高速になることもあります。

-t

--expand-tabs
    出力時に、タブをスペースに変換します。

-i

--ignore-case
    英大文字と小文字の違いを無視します。

-I regexp

--ignore-matching-lines=正規表現
    regexp (正規表現) にマッチした行は、比較対象から外します。

-l

--left-column
    同一の行については、左側だけ表示するようにします。

-o file

--output=file
    マージした結果を file で指定したファイルに書き出します。 このオプションを指定する事でマージが実行されます。

-s

--suppress-common-lines
    同一の行については、表示しないようにします。

-v

--version
    本プログラムのバージョンを表示します。

-w columns

--width=columns
    1 行の幅を columns で指定した文字数にします。古いバージョンとの 互換のため、 diff の幅の指定は、 -W ですが、 sdiff では、 -w になっています。

関連項目
cmp(1), comm(1), diff(1), diff3(1)

戻り値
比較結果として、違いが無かった場合は、0 を、違いが発見された場合は 1 を、何かエラーがおきた場合は、2 を返します。