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
がディレクトリでない場合、
sdiff は
FROMFILE
にある、ファイル名が
TOFILE
と同じものを比較の対象にする
(逆も同じ)。
FROMFILE と
TOFILE
の両方にディレクトリを指定することはできない。
入力ファイルに `
-'
を用いることはできない。
[訳注:
多くのコマンドでは
`
-'
は標準入力の意味になる]
通常
sdiff は
diff
を呼び出して処理を行う。
しかし
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
- 何らかのエラーが起こった。
関連項目¶
cmp(1),
comm(1),
diff(1),
diff3(1)
プログラムのバグについては
bug-gnu-utils@gnu.org
に報告してください。
ページの更新は Ragnar Hojland
Espinosa <ragnar@ragnar-hojland.com>
が行っています。