名前


sdiff - 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 のバージョン番号を出力する。

マージ


共通行のブロック (と空白の溝) は、 1 番目のファイルから出力にコピーされる。 異なっている行ブロックのあとには、 sdiff は ‘%’ でプロンプトを出して一時停止し、 以下のコマンドのどれか 1 つが入力されるのを待つ。
e 両方のバージョンとも捨てる。内容が空の一時ファイルをテキストエディタで開き、 エディタ終了後のファイルの内容を出力にコピーする。
eb 両方のバージョンを結合した結果をエディタで編集し、 終了後の内容を出力にコピーする。
ed eb’, と似ているが、各バージョンのブロックの前にヘッダを置き、 どのファイルのどの行のものかがわかるようにする。
el 左側のバージョンをエディタで編集し、 終了後の内容を出力にコピーする。
er 右側のバージョンをエディタで編集し、 終了後の内容を出力にコピーする。
l 左側のバージョンを出力にコピーする。
q 終了する。
p 右側のバージョンを出力にコピーする。
s 共通な行を表示せずにコピーする。
v 共通な行を表示しながらコピーする。デフォルト。

返り値


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

関連項目


cmp(1), comm(1), diff(1), diff3(1)

注意


プログラムのバグについては bug-gnu-utils@gnu.org に報告してください。 ページの更新は Ragnar Hojland Espinosa <ragnar@ragnar-hojland.com> が行っています。

openSUSE Logo

コンテンツ