Provided by: manpages-ja_0.5.0.0.20210215+dfsg-1_all
名前
diff3 - 3 つのファイル間にある違いを探す
書式
diff3 [-3aeimxAETX] [-L LABEL] [--easy-only] [--ed] [--initial-tab] [--label=LABEL] [--merge] [--overlap-only] [--show-all] [--show-overlap] [--text] MINE OLDER YOUR diff3 [-v] [--help] [--version]
説明
diff3 は 3 つのファイルを比較し、それらの違いの説明を出力する。 比較対象となるファイルは MINE, OLDER, YOURS である。これら三つのファイルのうちの一つを `-' としてもよく、その場合そのファイルは標準入力から読み込まれる。 通常 diff3 は自分の作業のために diff を起動する。しかし BDIFF 環境変数に他のプログラムを設 定すれば、 そのプログラムを使うように変更できる。
オプション
-3, --easy-only -e と似ているが、重複していない変更部分だけを出力する。 -a, --text ファイルがテキストには見えないような場合でも、 全てのファイルをテキストとみなして 1 行ずつ比較を行う。 -e, --ed OLDER から YOURS へのすべての変更を MINE にマージするような ed スクリプトを生成す る。 -i System V 互換性のために、 ed スクリプトの末尾に `w' コマンドと `q' コマンドを生成す る。このオプションは -AeExX3 のいずれかのオプションと共に用いなければならない。また -m と同時に指定することはできない。 -m, --merge ed スクリプトを 1 番目のファイルに適用し、その結果を標準出力に送る。 diff3 の出力を ed に送るのと異なり、 このオプションの動作はバイナリファイルや改行されていない行に も適用できる。 ed スクリプトのオプションが何も指定されなければ、 -A を暗黙のうちに 指定する。 -x, --overlap-only -e と似ているが、重複している変更だけを出力する点が異なる。 -A, --show-all OLDER から YOURS への全ての変更を MINE にマージする。重複している変更はブラケット行 で囲って出力する。 -E, --show-overlap -e と似ているが、重複部分のブラケット行の第 1・第 3 行が異なる。 -E では重複してい る変更は以下のようになる。 <<<<<<< MINE lines from MINE ======= lines from YOURS >>>>>>> YOURS -L LABEL, --label=LABEL -A, -E, -X オプションのブラケット行に、ラベル LABEL を用いる。このオプションはそれ ぞれの入力ファイルに対応して 3 つまで与えることができる。 デフォルトのラベルは入力 ファイルのファイル名である。したがって diff3 -L X -L Y -L Z -m A B C は diff3 -m A B C と同じように動作するが、 入力が A, B, C ではなく X, Y, Z のものであるかのような 出力となる。 -T, --initial-tab -X -E と似ているが、重複している変更だけを出力する点が異なる。 別の言い方をすれば、 -x と似ているが、 -E のように変更をブラケット行で囲う点が異なる。 --help 標準出力に使用方法のメッセージを出力して正常終了する。 -v, --version diff3 のバージョン番号を出力する。
出力形式
それぞれの hunk (違いを表すテキストブロック) は `====' という行から始まる。 3 ファイルとも 異なる hunk では ただの `====' となり、 1 ファイルが異なっている hunk では `1', `2', `3' のいずれかが、その異なっているファイルを示すために付加される。 hunk には 2 つ、または 3 つ の入力行のセットが含まれ、 それぞれに行セットがどのファイル由来のものかを示す 1 つまたは 2 つのコマンドが前置される。 デフォルトの動作では、入力行の前には 2 つのスペースが置かれ、 コマンドと区別できるようになっている。 -T が指定されると、代わりにタブを用いるので、 入力 にあったタブによる桁揃えが正しく保存される。 コマンド形式 FILE:La この hunk は FILE の L 行以降に現れるべきもので、そのファイルには存在していない。 このファイルを修正して他のファイルと同じにするには、 他の行からの hunk の行を追加し なければならない。例えば `1:11a' は、その hunk はファイル 1 の 11 行目以降に追加す べきもので、 ファイル 1 には含まれていないこと示す。 FILE:Rc この hunk には、 FILE の行範囲 R が含まれている。行範囲 R は 2 つの行番号をコンマで 区切ったものである。 数字が一つだったら 1 行だけの範囲と解釈される。 このファイルを 編集して他のファイルと同じにするには、 その行範囲を、他のファイルからとってきて変更 しなければならない。 例えば `2:11,13c' は、この hunk は 2 番目のファイルの 11〜13 行目からとってきたものであることを示す。 入力行セットの最後の行が改行で終わっていない場合は、 出力の次の行が `\' で始まるの で、改行で終わっている場合と区別できる。
返り値
diff3 は以下のどれかの値で終了する: 0 diff3 は成功し、重複している変更 (衝突) は存在しなかった。 1 重複が見付かった。 2 何らかのエラーが起こった。
関連項目
cmp(1), comm(1), diff(1), ed(1), patch(1), sdiff(1),
注意
プログラムのバグについては bug-gnu-utils@gnu.org に報告してください。 ページの更新は Ragnar Hojland Espinosa <ragnar@ragnar-hojland.com> が行っています。