'diff' обеспечивает несколько способов форматирования своей выдачи. Эти способы управления форматом выдачи могут быть применены к любому из форматов вывода.
Строки текста в некоторых форматах вывода 'diff' предваряются одним или двумя символами, показывающими был ли текст вставлен, удален или изменен. Добавление этих символов может привести к тому, что табуляция перейдет на следующую точку табуляции, игнорируя выравнивание колонок в строке. GNU 'diff' обеспечивает два способа решения этой проблемы.
Первый способ - заставить 'diff' перевести все символы табуляции в правильное количество пробелов перед их выводом; выбор этого метода осуществляется с помощью опции '-t' или '--expand-tabs'. 'diff' считает, что точки табуляции следуют через каждые 8 колонок. Чтобы использовать эту форму вывода с 'patch', нужно задать в 'patch' опцию '-l' или '--ignore-white-space'
Другой способ - добавлять символ табуляции вместо пробела после символа-индикатора в начале строки. Это гарантирует, что все следующие символы табуляции находятся в той же позиции относительно точки табуляции, в которой они были в изначальных файлах, так что вывод будет выравнен правильно. Издержка этого способа в том, что длинные строки могут стать слишком длинными, чтобы поместиться на одной стороке экрана или на бумаге. Он также не работает с унифицированным форматом вывода, в котором нет символов пробела после символа-индикатора. Этот метод выбирается с помощью опции '-T' или '--initial-tab'.
Может оказаться удобным разбивать длинные результаты работы на страницы и проставлять на них время. Опция '-l' или '--paginate' позволяют добиться этого, пропуская результаты работы 'diff' через программу 'pr'. Далее приведен пример заголовока страницы для 'diff -lc lao tzu':
Mar 11 13:37 1991 diff -lc lao tzu Page 1