このページの内容

3 不完全な行

入力ファイルが改行以外の文字で終わる場合、その最後の行は、末尾の文字が改行ではないため不完全な行と呼ばれます。それ以外の行は完全な行と呼ばれ、改行文字で終わります。空白の差分を無視しない限り、不完全な行は完全な行と一致しません(空白やタブの間隔の差分を抑制するを参照)。

通常、不完全な行は、その後に「\」で始まる行を置くことで、出力上で完全な行と区別されます。ただし、RCS書式(RCSスクリプトを参照)は、末尾の改行や後続の行を付けずに、不完全な行をそのまま出力します。左右比較書式も通常は不完全な行をそのまま表しますが、場合によって列間の欄に「\」または「/」の記号を使います。差分を左右に並べて表示するを参照してください。if-then-elseの行書式は、「%L」で行の不完全さを保持し、「%l」では改行を捨てます。行書式を参照してください。最後に、ed書式と順方向のed出力書式(diffの出力書式を参照)では、diffは不完全な行を表せないため、改行があったものとして扱い、エラーを報告します。

たとえば、FとGが、それぞれ「f」と「g」だけを含む1文字のファイルだとします。このとき「diff F G」は次を出力します。

1c1
< f
\ No newline at end of file
---
> g
\ No newline at end of file

(英語以外のロケールでは、実際のメッセージが異なる場合があります。)「diff -n F G」は、末尾の改行を付けずに次を出力します。

d1 1
a1 1
g

「diff -e F G」は2つのエラーを報告し、次を出力します。

1c
g
.