7.3 diff3 の normal 形式の詳細

各 hunk は「====」と記された行から始まります。3方向の hunk では単なる「====」行になり、2方向の hunk では「1」「2」「3」のいずれかが追加され、その hunk で3つの入力ファイルのどれが異なるかを示します。各 hunk には入力行の集合が2つまたは3つコピーされ、それぞれの前に1つまたは2つのコマンドが付き、行の出所を示します。

通常、入力行の各コピーの前には、コマンドと区別するため2つの空白が付きます。ただし --initial-tab(-T)オプションを指定すると、diff3 は2つの空白の代わりにタブを使います。これによってタブが正しく整列します。詳しくは タブ位置の整列を保持する を参照してください。

コマンドの形式は次のとおりです。

‘file:la’

この hunk はファイル file の行 l の後に現れ、そのファイルの行を含みません。このファイルを編集して他のファイルと同じ内容にするには、他のファイルから取った hunk の行を追加する必要があります。たとえば「1:11a」は、hunk が1番目のファイルの11行目の後にあり、そのファイルの行を含まないことを示します。

‘file:rc’

この hunk はファイル file の範囲 r の行を含みます。範囲 r はカンマで区切った2つの行番号、または1行だけの場合は1つの番号です。このファイルを編集して他のファイルと同じ内容にするには、指定された行を他のファイルから取った行に変更する必要があります。たとえば「2:11,13c」は、hunk が2番目のファイルの11〜13行目を含むことを示します。

入力行集合の最後の行が不完全な場合(不完全な行 を参照)、出力ではその後に「\」で始まる行が付き、完全な行と区別されます。