diff

Сравнение двух файлов, построчно (GNU)

Синтаксис:

diff [опция] файл1 файл2

Поддерживаемые платформы:

Neutrino

Опции:

-i

--ignore-case

Игнорировать различия в регистре символов в содержимом файлов.

--ignore-file-name-case

Игнорировать регистр при сравнении имен файлов.

--no-ignore-file-name-case

Учитывать регистр при сравнении имен файлов.

-E

--ignore-tab-expansion

Игнорировать изменения, связанные с заменой символов табуляции пробелами.

-b

--ignore-space-change

Игнорировать изменения количества пробельных символов.

-w

--ignore-all-space

Игнорировать все пробельные символы.

-B

--ignore-blank-lines

Игнорировать изменения, касающиеся только вставки или удаления пустых строк.

-I RE

--ignore-matching-lines=регулярное_выражение

Игнорировать изменения, касающиеся только вставки и удаления строк, совпадающих с регулярным_выражением.

--strip-trailing-cr

Удалить из ввода завершающие символы перевода строки.

-a

--text

Обработать все файлы как текст.

-c

-C кол-во

--context[=число]

Выводить указанное число (по умолчанию – значение "3") строк скопированного контекста.

-u

-U кол-во or --unified[=кол-во]

Выводить указанное число (по умолчанию – значение "3") строк унифицированного контекста.

--label метка

Использовать в выводе метку вместо имени файла. Эту опцию можно указать дважды; первая применяется к файл1, вторая – к файл2.

-p

--show-c-function

Показывать, внутри каких функций языка C происходит каждое изменение.

-F RE

--show-function-line=RE

Показывать самую новую строку, которая соответствует данному регулярному выражению.

-q

--brief

Выводить информацию только о факте наличия или отсутствия различий в файлах.

-e

--ed

Выводить сценарий ed.

--normal

Отображать различия в стандартном формате.

-n

--rcs

Отображать различия в формате RCS.

-y

--side-by-side

Отображать вывод в двух столбцах.

-W кол-во

--width=число

Выводить не более указанного числа (значение по умолчанию – "130") печатных колонок.

--left-column

Выводить только левую колонку для двух общих (для обоих файлов) строк.

--suppress-common-lines

Не отображать общие для обоих файлов строки.

-D имя

--ifdef=имя

Выводить объединенный файл для отображения различий #ifdef имя.

--GTYPE-group-format=GFMT

Использовать указанный формат для вывода групп строк в формате "если (…), то (…), иначе (…). GTYPE может принимать значение old, new, changed или unchanged.

GFMT может содержать:

%<

Строки из файл1;

%>

Строки из файл2;

%=

Строки, общие для файл1 и файл2.

%[–][ширина][.[prec]]{doxX}буква

Использовать данную спецификацию стиля printf для определенной буквы. Буквы для новой группы представлены ниже; для старой группы используйте строчные буквы:

* F – номер первой строки.

* L – номер последней строки.

* N – количество строк = L-F+1.

* E – F-1.

* M – L+1.

%%

Литерал %.

%c'C'

Одиночный символ, C.

%c'\OOO'

Символ с данным восьмеричным кодом, OOO.

--line-format=LFMT

Использовать данный формат для вывода всех строк ввода в формате "если (…), то (…), иначе (…).

--LTYPE-line-format=LFMT

Использовать данный формат для вывода отдельных строк в формате "если (…), то (…), иначе (…). LTYPE может принимать значение old, new или unchanged. LFMT может содержать:

%L

Содержимое строки.

%l

Содержимое строки, исключая какой-либо конечный перевод строки.

%[–][ширина][.[prec]]{doxX}n

Использовать указанную спецификацию стиля printf для номеров вводимых строк.

%%

Литерал %.

%c'C'

Одиночный символ, C.

%c'\OOO'

Символ с данным восьмеричным кодом, OOO.

-l

--paginate

Передать вывод команде pr для разбития его на страницы.

-t

--expand-tabs

Преобразовать символы табуляции в пробелы при выводе.

-T

--initial-tab

Выводить перед строкой текста табуляцию вместо пробела.

-r

--recursive

Рекурсивно сравнить любые найденные подкаталоги.

-N

--new-file

При сравнении каталогов, если файл найден только в одном каталоге, то считать, что он существует и в другом каталоге, но является пустым.

--unidirectional-new-file

При сравнении каталогов, если файл существует только во втором каталоге, то считать, что он есть и в другом каталоге, но только пустой.

-s

--report-identical-files

Сообщить о том, что файлы являются одинаковыми.

-x шаблон

--exclude=шаблон

Исключить файлы, соответствующие заданному шаблону.

-X файл

--exclude-from=файл

Исключить файлы, соответствующие какому-либо шаблону в файл.

-S файл

--starting-file=файл

При сравнении каталогов начинать с файла файл.

--from-file=файл1

Сравнить файл1 со всеми операндами. Аргумент файл1 также может быть именем каталога.

--to-file=файл2

Сравнить все операнды с файл2. Аргумент файл2 может также быть именем каталога.

--horizon-lines=кол-во

Сохранить кол-во строк общего префикса и суффикса.

-d

--minimal

Интенсивный поиск минимального набора изменений.

--speed-large-files

Предположить наличие больших файлов, которые содержат несколько небольших изменений, разбросанных по файлу, для ускорения обработки.

-v

--version

Вывести информацию о версии.

--help

Вывести справку.

файл1, файл2

Сравнивать путевые имена файлов. Путевые имена файлов могут быть в следующих формах:

* файл1 файл2

* каталог1 каталог2

* каталог файл...

* файл... каталог


Если указана опция --from-file или --to-file, ограничения для файлов отсутствуют. Если вместо имени файла указано тире (–), утилита diff считывает из стандартного потока ввода.

Описание:

Утилита diff сообщает о различиях между двумя файлами.

Примечание. Если утилита diff используется для сравнения двоичных файлов, то diff просто выводит отчет о наличии различий между файлами. Для просмотра различий между двумя двоичными файлами используется утилита cmp.

Для любых двух файлов может существовать несколько корректных вариантов интерпретации различий между ними. Утилита diff предпринимает попытку создания минимального количества добавлений, изменений и удалений, требуемых для преобразования файл1 в файл2. Если файлы идентичны, вывод отсутствует.

Примечание. На данную утилиту распространяются условия общедоступной лицензии GNU Public License (GPL). Она предназначена для использования в системах разработки программ.

Для получения подробной информации об утилите diff посетите web-сайт GNU по адресу: http://www.gnu.org/.

Статус завершения:

0

Различий не обнаружено.

1

Обнаружены различия.

>1

Возникла ошибка.

Автор:

GNU