В случае, когда входной файл заканчивается символом, отличным от символа конца строки, последняя строка этого файла называется незавершенной строкой. Все другие строки называются полными строками, и завершаются символом перехода на новую строку. Незавершенные строки не совпадают с полными строками, даже если игнорируются различия в количестве символов-разделителей.
Незавершенная строка обычно отличается при выводе от полной строки следующей строкой, которая начинается с символа '\'. Однако при выводе в RCS-формате незавершенная строка выводится как есть, без завершающего символа перехода на новую строку. Сравнительный формат обычно представляет незавершенную строку как есть, но в некоторых случаях используется маркеры '/' или '\'. При описании шаблонов строк для формата if-then-else, %L позволяет сохранить незавершенность строки, и %l приводит к выводу символа новой строки. Наконец, для формата ed и прямого формата ed, diff не может представить незавершенную строку, поэтому в результате появляется завершенная строка и выдается сообщение об ошибке.
Например, допустим, что F и G - однобайтовые файлы, которые содержат символы 'f' и 'g' соответственно.
1c1
< f
\ No newline at end of file
--
> g
\ No newline at end of file
(Точное содержимое сообщения может быть другим в национальных
версиях diff). 'diff -n -F G' приведет к выводу следующего текста без
завершающего символа перехода на новую строку:
d1 1
a1 1
g
Команда 'diff -e F G' приведет к появлению двух сообщений об
ошибке и выдаче следующего:
1c
g
.