DIFF(1)

НАЗВА
diff - порівняння файлів за рядками

КОРОТКИЙ ОПИС
diff [ПАРАМЕТР]... ФАЙЛИ

ОПИС
Порівнює два файли за рядками.

Обов'язкові аргументи для довгих параметрів також є обов'язковими для коротких параметрів.

--normal
    вивести дані у форматі звичайного diff (типово)

-q, --brief
    сповіщати лише про різні файли

-s, --report-identical-files
    сповіщати про однакові файли

-c, -C NUM, --context[=КТЬ]
    вивести КТЬ (типово 3) рядки скопійованого контексту

-u, -U NUM, --unified[=ЧИСЛО]
    вивести ЧИСЛО (типово 3) рядків спільного контексту

-e, --ed
    вивести дані у форматі запису ed(1)

-n, --rcs
    виводити у форматі diff систем керування версіями

-y, --side-by-side
    вивести дані у два стовпчики

-W, --width=ЧИСЛО
    виводити текст не більше ніж у ЧИСЛО (типово 130) позицій у рядок

--left-column
    виводити спільні рядки лише у ліву колонку

--suppress-common-lines
    не виводити спільні рядки

-p, --show-c-function
    показати дані щодо функцій C у яких виявлено кожну зі змін

-F, --show-function-line=RE
    показати останній рядок, що відповідає формальному виразу RE

--label МІТКА
    використати МІТКУ замість назви файла і часової позначки (можна використовувати декілька разів)

-t, --expand-tabs
    замінювати символи табуляції пробілами у виводі

-T, --initial-tab
    вирівнювати табуляцію додаючи на початок символ табуляції

--tabsize=ЧИСЛО
    табуляція кожні ЧИСЛО позицій виведення (типово 8)

--suppress-blank-empty
    не показувати пробіли або табуляції перед порожніми рядками

-l, --paginate
    спрямувати дані до pr(1) для розбиття на сторінки.

-r, --recursive
    рекурсивно порівняти всі знайдені підкаталоги

--no-dereference
    не переходити за символічними посиланнями

-N, --new-file
    вважати незнайдені файли порожніми

--unidirectional-new-file
    вважати незнайдені у першому джерелі файли порожніми

--ignore-file-name-case
    ігнорувати регістр назв файлів під час порівняння

--no-ignore-file-name-case
    враховувати регістр символів назв файлів

-x, --exclude=ЗРАЗОК
    виключити файли, назви яких відповідають ЗРАЗКУ

-X, --exclude-from=ФАЙЛ
    виключити файли, назви яких відповідають зразкам з файла

-S, --starting-file=ФАЙЛ
    починати порівняння каталогів на файлі ФАЙЛ

--from-file=ФАЙЛ1
    порівняти ФАЙЛ1 з усіма операндами; ФАЙЛ1 може бути каталогом

--to-file=ФАЙЛ2
    порівняти всі операнди з ФАЙЛОМ 2; ФАЙЛ2 може бути каталогом.

-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=НАЗВА
    виводити diff-блоки, що використовують конструкцію «#ifdef НАЗВА».

--GTYPE-group-format=ГФМТ
    форматувати вхідні групи типу ГТИП у відповідності до формату ГФМТ.

--line-format=СФМТ
    форматувати всі вхідні рядки за допомогою СФМТ.

--LTYPE-line-format=СФМТ
    форматувати вхідні рядки типу СТИП у відповідності до формату СФМТ

    За допомогою цих параметрів форматування можна точно налаштувати

    вивід diff, з узагальненням -D/--ifdef.

СТИП може бути «old», «new» чи «unchanged».
    ГТИП — те саме або «changed».

    ГФМТ може містити:

%<  рядки з ФАЙЛА1

%>  рядки з ФАЙЛА2

%=  рядки, спільні для ФАЙЛА1 та ФАЙЛА2

%[-][ШИРИНА][.[ТОЧН]]{doxX}ЛІТЕРА
    формат для ЛІТЕРА у стилі printf(1)

    ЛІТЕРА має наступні значення для нових груп, маленькі для старих:

F   номер першого рядка

L   номер останнього рядка

N   кількість рядків = L-F+1

E   F-1

M   L+1

%(A=B?T:E)
    якщо A дорівнює B, T, інакше E

    СФМТ може містити:

%L  вміст рядка

%l  вміст рядка без символу нового рядка наприкінці

%[-][ШИРИНА][.[ТОЧН]]{doxX}n
    формат номеру вхідного рядка у стилі printf(1)

    Обидва ГФМТ та СФМТ можуть містити:

%%  %

%c'C'
    один символ С

%c'\OOO'
    один символ з вісімковим кодом OOO

C   символ C (інші символи не оброблятимуться)

-d, --minimal
    намагатись знайти найменший набір змін

--horizon-lines=ЧИСЛО
    зберегти ЧИСЛО спільних рядків, до та після різних

--speed-large-files
    вважати файли великими з багатьма розкиданими дрібними змінами.

--color[=УМОВА]
    розфарбовувати виведення; значенням КОЛИ може бути 'never', 'always', або 'auto'; просто --color означає --color='auto'

--palette=ПАЛІТРА
    кольори, які слід використовувати, якщо додано --color; ПАЛІТРА — відокремлений двокрапками список можливостей terminfo(5)

--help
    відображає довідку і виходить

-v, --version
    виводить інформацію про версію і виходить

ФАЙЛИ — це «ФАЙЛ1 ФАЙЛ2», чи «КАТАЛОГ1 КАТАЛОГ2», чи «КАТАЛОГ ФАЙЛ», чи «ФАЙЛ КАТАЛОГ». Якщо вказано --from-file чи --to-file, на ФАЙЛИ обмежень немає. Якщо ФАЙЛ вказано як «-», дані буде прочитано зі стандартного потоку введення. Код завершення дорівнює 0, якщо вхідні файли ідентичні, 1 -- якщо відрізняються, та 2 при виникненні помилок.

АВТОР
Автори програми -- Paul Eggert, Mike Haertel, David Hayes, Richard Stallman та Len Tower.

ЗВІТИ ПРО ВАДИ
Повідомляйте про вади на адресу: <bug-diffutils@gnu.org>
Домашня сторінка 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(1) та diff за допомогою команди

    info diff

ви зможете отримати доступ до повноцінного підручника.

ПЕРЕКЛАД
Український переклад цієї сторінки посібника виконано Yuri Chornoivan <yurchor@ukr.net>

Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html). НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.

Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: trans-uk@lists.fedoraproject.org.