diff - сравнение файлов построчно
СИНТАКСИС
diff [ОПЦИЯ]... ФАЙЛЫ
ОПИСАНИЕ
Сравнение файлов построчно.
Обязательные аргументы для длинных опций также обязательны и для коротких опций.
--normal
вывод в обычном формате (по умолчанию)
-q, --brief
сообщать только при различии файлов
-s, --report-identical-files
сообщать, когда два файла одинаковы
-c, -C NUM, --context[=NUM]
вывод NUM (по умолчанию 3) строк контекста
-u, -U NUM, --unified[=NUM]
вывод NUM (по умолчанию 3) строк объединенного контекста
-e, --ed
вывод сценария ed
-n, --rcs
вывод в формате RCS
-y, --side-by-side
вывод в два столбца
-W, --width=NUM
вывод не более NUM (по умолчанию 130) печатных столбцов
--left-column
вывод только левого столбца общих строк
--suppress-common-lines
не выводить общие строки
-p, --show-c-function
показывать, в какой функции C находится каждое изменение
-F, --show-function-line=RE
показывать последнюю строку, соответствующую RE
--label LABEL
использовать LABEL вместо имени файла и временной метки (можно повторять)
-t, --expand-tabs
заменять табуляции пробелами в выводе
-T, --initial-tab
выравнивать табуляции, добавляя их в начало строки
--tabsize=NUM
шаг табуляции - NUM (по умолчанию 8) печатных столбцов
--suppress-blank-empty
подавлять пробелы или табуляции перед пустыми строками вывода
-l, --paginate
передавать вывод в 'pr' для постраничного вывода
-r, --recursive
рекурсивно сравнивать все найденные подкаталоги
--no-dereference
не следовать символическим ссылкам
-N, --new-file
рассматривать отсутствующие файлы как пустые
--unidirectional-new-file
рассматривать отсутствующие первые файлы как пустые
--ignore-file-name-case
игнорировать регистр при сравнении имен файлов
--no-ignore-file-name-case
учитывать регистр при сравнении имен файлов
-x, --exclude=PAT
исключать файлы, соответствующие PAT
-X, --exclude-from=FILE
исключать файлы, соответствующие любому шаблону в FILE
-S, --starting-file=FILE
начинать с FILE при сравнении каталогов
--from-file=FILE1
сравнивать FILE1 со всеми операндами; FILE1 может быть каталогом
--to-file=FILE2
сравнивать все операнды с FILE2; FILE2 может быть каталогом
-i, --ignore-case
игнорировать различия в регистре содержимого файла
-E, --ignore-tab-expansion
игнорировать изменения из-за расширения табуляции
-Z, --ignore-trailing-space
игнорировать пробелы в конце строки
-b, --ignore-space-change
игнорировать изменения в количестве пробелов
-w, --ignore-all-space
игнорировать все пробелы
-B, --ignore-blank-lines
игнорировать изменения, при которых все строки пустые
-I, --ignore-matching-lines=RE
игнорировать изменения, при которых все строки соответствуют RE
-a, --text
рассматривать все файлы как текстовые
--strip-trailing-cr
удалять завершающую каретку на входе
-D, --ifdef=NAME
выводить объединенный файл с условными директивами '#ifdef NAME'
--GTYPE-group-format=GFMT
форматировать входные группы GTYPE с помощью GFMT
--line-format=LFMT
форматировать все входные строки с помощью LFMT
--LTYPE-line-format=LFMT
форматировать входные строки LTYPE с помощью LFMT
Эти параметры форматирования обеспечивают детальный контроль над выводом diff, обобщая -D/--ifdef.
LTYPE - 'old', 'new' или 'unchanged'. GTYPE - LTYPE или 'changed'.
GFMT (только) может содержать:
%< строки из FILE1
%> строки из FILE2
%= строки, общие для FILE1 и FILE2
%[-][WIDTH][.[PREC]]{doxX}LETTER
printf-подобная спецификация для LETTER
LETTER - это следующие элементы для новой группы, в нижнем регистре - для старой группы:
F номер первой строки
L номер последней строки
N количество строк = L-F+1
E F-1
M L+1
%(A=B?T:E)
если A равно B, то T, иначе E
LFMT (только) может содержать:
%L содержимое строки
%l содержимое строки, исключая любые завершающие символы новой строки
%[-][WIDTH][.[PREC]]{doxX}n
printf-подобная спецификация для номера входной строки
Как GFMT, так и LFMT могут содержать:
%% %
%c'C' один символ C
%c'\OOO'
символ с восьмеричным кодом OOO
C символ C (другие символы представляют сами себя)
-d, --minimal
стараться найти минимальный набор изменений
--horizon-lines=NUM
сохранять NUM строк общего префикса и суффикса
--speed-large-files
предполагать большие файлы и множество разбросанных небольших изменений
--color[=WHEN]
окрашивать вывод; WHEN - 'never', 'always' или 'auto'; простая --color означает --color='auto'
--palette=PALETTE
цвета, которые следует использовать, когда --color активен; PALETTE - это список возможностей terminfo, разделенный двоеточиями
--help отобразить эту справку и выйти
-v, --version
вывести информацию о версии и выйти
FILES - это 'FILE1 FILE2' или 'DIR1 DIR2' или 'DIR FILE' или 'FILE DIR'. Если указаны --from-file или --to-file, то на FILE(s) нет ограничений. Если FILE - это '-', читать стандартный ввод. Код выхода равен 0, если входы одинаковы, 1, если различны, 2 в случае проблем.
АВТОР
Написано Полом Эггертом, Майком Хаертелем, Дэвидом Хейзом, Ричардом Столлманом и Леном Тауэром.
СООБЩЕНИЕ ОБ ОШИБКАХ
Сообщайте об ошибках по адресу: Домашняя страница GNU diffutils: [https://www.gnu.org/software/diffutils/] Общая помощь при использовании программного обеспечения GNU: [https://www.gnu.org/gethelp/]
АВТОРСКИЕ ПРАВА
Авторское право © 2025 Free Software Foundation, Inc. Лицензия GPLv3+: GNU GPL версии 3 или более поздней [https://gnu.org/licenses/gpl.html]. Это свободное программное обеспечение: вы можете изменять и распространять его. Нет НИКАКОЙ ГАРАНТИИ, в той мере, в какой это разрешено законом.
СМОТРИТЕ ТАКЖЕ
wdiff(1), cmp(1), diff3(1), sdiff(1), patch(1)
Полная документация для diff поддерживается в виде руководства Texinfo. Если программы info и diff установлены в вашей системе, команда
info diff
должна предоставить доступ к полному руководству.