Сравнение и объединение файлов diff, diff3, sdiff, cmp, patch : Незавершенные строки

Вперед Назад Содержание

17. Незавершенные строки

В случае, когда входной файл заканчивается символом, отличным от символа конца строки, последняя строка этого файла называется незавершенной строкой. Все другие строки называются полными строками, и завершаются символом перехода на новую строку. Незавершенные строки не совпадают с полными строками, даже если игнорируются различия в количестве символов-разделителей.

Незавершенная строка обычно отличается при выводе от полной строки следующей строкой, которая начинается с символа '\'. Однако при выводе в 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   
      .   


Вперед Назад Содержание