sdiff(1) 2 つのファイルの違いを見つけ、対話的にマージを行う

書式

sdiff [-abdilstBEHW] [-o OUTFILE] [-w COLUMNS] [-I REGEXP] [--diff-program=PROGRAM] [--expand-tabs] [-ignore-all-space] [-ignore-blank-lines] [--ignore-case] [--ignore-matching-lines=REGEXP] [--ignore-space-change] [--ignore-tab-expansion] [--left-column] [--minimal] [--output=OUTFILE] [--speed-large-files] [--strip-trailing-cr] [--supress-common-lines] [--text] [--width=COLUMNS] FROMFILE TOFILE

sdiff [-v] [--help] [--version]

説明

sdiff は 2 つのファイルをマージする。 -o が指定されている場合は対話的にマージした結果を OUTFILE に出力する。それ以外の場合は side-by-side 形式で違いを表示するだけである。

FROMFILE がディレクトリで TOFILE がディレクトリでない場合、 sdiffFROMFILE にある、ファイル名が TOFILE と同じものを比較の対象にする (逆も同じ)。 FROMFILETOFILE の両方にディレクトリを指定することはできない。 入力ファイルに `-' を用いることはできない。 [訳注: 多くのコマンドでは `-' は標準入力の意味になる]

通常 sdiffdiff を呼び出して処理を行う。 しかし DIFF 環境変数を他のプログラムに設定すれば、そのプログラムを使うように変更できる。 また EDITOR 環境変数を設定すると、使用するエディタも変更できる。

オプション

-a, --text
テキストのように見えないファイルがあっても、 全てのファイルをテキストとみなして 1 行ずつ比較していく。
-b, --ignore-space-change
空白の数の違いを無視する。
-d, --minimal
アルゴリズムを変更する (おそらく小さな違いも見付かるようになる)。 これを用いると sdiff は遅くなる (時には非常に遅くなる)。
-i, --ignore-case
英大文字と小文字の違いを無視する。
-l, --left-column
共通の行に対しては、左側の列だけを表示する。
-o OUTFILE, --output=OUTFILE
マージされた出力を OUTFILE に書き込む。マージを行うためにはこのオプションが必要である。
-s, --suppress-common-lines
共通な行を表示しない。
-t, --expand-tabs
出力でタブ文字をスペースに変換する。 入力ファイルでのタブ文字による桁揃えが保存される。
-w COLUMNS, --width=COLUMNS
出力の幅を COLUMNS 桁にする。 歴史的な理由から、 diff(1) ではこのオプションは -W になっていることに注意。
-B, --ignore-blank-lines
空行を挿入・削除するだけの違いは無視する。
-E, --ignore-tab-expansion
タブ展開によるスペースの変更を無視する。
-H, --speed-large-files
小さな変更が大量にあるような大きなファイルを高速に扱うために、 発見的推測手法を用いる。
-I REGEXP, --ignore-matching-lines=REGEXP
正規表現 REGEXP にマッチした行を挿入・削除するだけの違いは無視する。
-W
行の比較の際に空白を無視する。 歴史的な理由から、 diff(1) ではこのオプションは -w になっていることに注意。
--diff-program= PROGRAM
ファイルの比較するために diff と互換性のある 外部プログラム PROGRAM を用いる。
--strip-trailing-cr
行末の CR を取り除く。 行末のマーカとして CRLF を使うシステムの出力を処理するときに役立つ。
--help
標準出力に使用方法のメッセージを出力して正常終了する。
-v, --version
sdiff のバージョン番号を出力する。

マージ

共通行のブロック (空白の「のど (gutter)」を挟んで左右に表示される) は、 1 番目のファイルから出力にコピーされる。 差異のある行ブロックのあとでは、 sdiff は `%' をプロンプトとして出して一時停止し、 以下のコマンドのどれか 1 つが入力されるのを待つ。
[訳注]:
「のど (gutter)」とは、印刷用語で左右のページの間にある部分 (すなわち、 折り目になるところ) を指す。このマニュアルでは、対応する行の中間にある、 区切り記号を置く場所を意味している。詳細については、 diff(1) の「side-by-side 形式」を参照すること。
e
両方のバージョンとも捨てる。内容が空の一時ファイルをテキストエディタで開き、 エディタ終了後のファイルの内容を出力にコピーする。
eb
両方のバージョンを結合した結果をエディタで編集し、 終了後の内容を出力にコピーする。
ed
`eb', と似ているが、各バージョンのブロックの前にヘッダを置き、 どのファイルのどの行のものかがわかるようにする。
el
左側のバージョンをエディタで編集し、 終了後の内容を出力にコピーする。
er
右側のバージョンをエディタで編集し、 終了後の内容を出力にコピーする。
l
左側のバージョンを出力にコピーする。
q
終了する。
r 右側のバージョンを出力にコピーする。
s
共通な行を表示せずにコピーする。
v
共通な行を表示しながらコピーする。デフォルト。

返り値

sdiff は以下のどれかの値で終了する:
0
sdiff は成功し、差異は存在しなかった。
1
差異が見付かった。
2
何らかのエラーが起こった。

注意

プログラムのバグについては [email protected] に報告してください。 ページの更新は Ragnar Hojland Espinosa <[email protected]> が行っています。