Сравнение и объединение файлов diff, diff3, sdiff, cmp, patch : Достижение более читабельной выдачи 'diff'

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

5. Достижение более читабельной выдачи 'diff'

'diff' обеспечивает несколько способов форматирования своей выдачи. Эти способы управления форматом выдачи могут быть применены к любому из форматов вывода.

5.1 Сохранение выравнивания по точкам табуляции

Строки текста в некоторых форматах вывода 'diff' предваряются одним или двумя символами, показывающими был ли текст вставлен, удален или изменен. Добавление этих символов может привести к тому, что табуляция перейдет на следующую точку табуляции, игнорируя выравнивание колонок в строке. GNU 'diff' обеспечивает два способа решения этой проблемы.

Первый способ - заставить 'diff' перевести все символы табуляции в правильное количество пробелов перед их выводом; выбор этого метода осуществляется с помощью опции '-t' или '--expand-tabs'. 'diff' считает, что точки табуляции следуют через каждые 8 колонок. Чтобы использовать эту форму вывода с 'patch', нужно задать в 'patch' опцию '-l' или '--ignore-white-space'

Другой способ - добавлять символ табуляции вместо пробела после символа-индикатора в начале строки. Это гарантирует, что все следующие символы табуляции находятся в той же позиции относительно точки табуляции, в которой они были в изначальных файлах, так что вывод будет выравнен правильно. Издержка этого способа в том, что длинные строки могут стать слишком длинными, чтобы поместиться на одной стороке экрана или на бумаге. Он также не работает с унифицированным форматом вывода, в котором нет символов пробела после символа-индикатора. Этот метод выбирается с помощью опции '-T' или '--initial-tab'.

5.2 Разбивка результатов 'diff' на страницы

Может оказаться удобным разбивать длинные результаты работы на страницы и проставлять на них время. Опция '-l' или '--paginate' позволяют добиться этого, пропуская результаты работы 'diff' через программу 'pr'. Далее приведен пример заголовока страницы для 'diff -lc lao tzu':

      Mar 11 13:37 1991  diff -lc lao tzu Page 1   


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