2.4.2 Normal書式の詳細
normal出力書式は、1つ以上の差分のhunkからなります。各hunkは、ファイルが異なる1つの領域を示します。normal書式のhunkは次のようになります。
change-command < from-file-line < from-file-line... --- > to-file-line > to-file-line...
変更コマンドには3種類あります。各コマンドは、最初のファイルの行番号またはコンマで区切った行範囲、行う変更の種類を示す1文字、2番目のファイルの行番号またはコンマで区切った行範囲からなります。行番号はすべて、各ファイルの元の行番号です。変更コマンドの種類は次のとおりです。
- ‘lar’
2番目のファイルの範囲rにある行を、最初のファイルのl行目の後に追加します。たとえば「8a12,15」は、ファイル2の12〜15行目をファイル1の8行目の後に追加することを意味します。逆にファイル2をファイル1へ変更する場合は、ファイル2の12〜15行目を削除します。
- ‘fct’
最初のファイルの範囲fにある行を、2番目のファイルの範囲tにある行で置き換えます。追加と削除を組み合わせたものに相当しますが、よりコンパクトです。たとえば「5,7c8,10」は、ファイル1の5〜7行目をファイル2の8〜10行目と同じ内容に変更することを意味します。逆にファイル2をファイル1へ変更する場合は、ファイル2の8〜10行目をファイル1の5〜7行目と同じ内容に変更します。
- ‘rdl’
最初のファイルから範囲rにある行を削除します。l行目は、削除されなかった場合にその行が2番目のファイルで現れるはずだった位置を示します。たとえば「5,7d3」は、ファイル1の5〜7行目を削除することを意味します。逆にファイル2をファイル1へ変更する場合は、ファイル1の5〜7行目をファイル2の3行目の後に追加します。