Руководства по командной строке

Man » Онлайн-руководство diff - подробная онлайн-документация для страницы руководства diff

🌍
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

должна предоставить доступ к полному руководству.