Man:Man1/diff.1
Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.
Зміст |
НАЗВА
diff - знайти відмінності між двома файлами
ЗВІД
diff [опції] файл-з файл-до
ОПИС
У найпростішому випадку, diff порівнює вміст двох файлів: файл-з та файл-до . Ім'я файлу - (дефіс) означає текст, прочитаний зі звичного вводу. У особливому разі, diff - - порівнює копію звичного вводу з ним же. Якщо файл-з є текою, а файл-до ні, diff бере для порівняння файл у теці файл-з з назвою файл-до , і навпаки. Файл, що не є текою не повинен бути - . Якщо і файл-з , і файл-до є теками, diff порівнює відповідні файли в обох теках, у алфавітному порядку; це порівняння не рекурсивне, поки не вказано опцію -r чи --recursive . diff ніколи не порівнює дійсний вміст теки, так ніби вона є файлом. Явно описаний файл не може бути звичним вводом, тому що звичний ввід безіменний, і поняття "файл з тим же ім'ям" не застосовне. Ключі diff починаються з - , тож звично назви файл-з та файл-до не можуть починатись з - . проте, арґумент -- вказує вважати решту арґументів назвами файлів, навіть якщо вони починаються з - .
Опції
Далі йде звід усіх опцій, що приймає GNU diff . Більшість опцій мають дві тотожні назви, одна з них є одною буквою, якій передує - , інша є довгою назвою, якій передує -- . Кілька однобуквених оцій (якщо вони без арґументів) можна зчепити в одне слово командного рядка: -ac тотожне до -a -c . Довгі назви можна скоротити до будь-якого унікального префіксу їх назви. Дужки ( [ та ] ) вказують, що опція бере необов'язковий арґумент.
|
- кількість_рядків |
Показати кількість_рядків (ціле число) рядків контексту. Ця опція сама не вказує формат виводу; Вона не діє без -c чи -u . Ця опція застаріла. Для вірної дії patch звично потрібно хоча б два рядки контексту. |
|
-a |
Вважати всі файли текстовими й обробляти їх рядок за рядком, навіть якщо вони не схожі на текстові. |
|
-b |
Іґнорувати зміни в кількості пробілів. |
|
-B |
Іґнорувати зміни, що лише вставляють чи додають пусті рядки. |
|
--brief |
Повідомити лише чи відрізняються файли, а не подробиці відмінностей. |
|
-c |
Вживати контекстний формат виводу. |
|
-C кількість_рядків
|
Вживати контекстний формат виводу, показуючи кількість_рядків (ціле число) рядків контексту, або три, якщо кількість_рядків не вказано. Для вірної дії, patch звичайно потребує хоча б два рядки контексту. |
|
--changed-group-format= формат |
Вживати формат для виводу групи рядків, що містять відмінні рядки обох файлів у форматі if-then-else (якщо-то-інакше). |
|
-d |
Змінити алґоритм для можливого знаходження меншого набору змін. Це сповільнює diff (іноді значно). |
|
-D назва |
Робити об'єднаний вивід у форматі if-then-else (якщо-то-інакше), беручи умовою макрос назва допроцесора. |
|
-e
|
Зробити вивід, що є робочим скриптом для ed. |
|
--exclude= зразок |
При порівнянні тек, пропускати файли та підтеки, базова назва яких відповідає зразку . |
|
--exclude-from= файл |
При порівнянні тек, пропускати файли та підтеки, базова назва яких відповідає будь-якому зразку з файлу . |
|
--expand-tabs |
Розгортати табуляцію у пробіли на виводі, для збереження вирівнювання відступів у вхідних файлах. |
|
-f |
Зробити вивід, що схожий на скрипт ed , але має зміни у порядку, в якому вони з'являються у файлі. |
|
-F реґулярний_вираз |
В контекстному та об'єднаному форматі, для кожного набору відмінностей, показати кілька попередніх рядків, що відповідають арґументу реґулярний_вираз . |
|
--forward-ed |
Зробити вивід, що схожий на скрипт ed , але має зміни у порядку, в якому вони з'являються у файлі. |
|
-h |
Ця опція тепер не має жодного впливу; вона присутня для сумісності з Unix. |
|
-H |
Вживати евристику для прискорення обробки великих файлів з багатьма розсіяними малими відмінностями. |
|
--horizon-lines= кількість_рядків |
Не викидати останні кількість_рядків рядків спільного префіксу і перші кількість_рядків рядків спільного суфіксу. |
|
-i |
Іґнорувати зміни реґістру; Вважати великі та малі букви тотожними. |
|
-I реґулярний_вираз |
Іґнорувати зміни, що лише додають чи видаляють рядки, узгоджені з арґументом реґулярний_вираз . |
|
--ifdef= назва |
Робити об'єднаний вивід у форматі if-then-else (якщо-то-інакше), беручи умовою макрос назва допроцесора. |
|
--ignore-all-space |
Іґнорувати пропуски при порівнянні рядків. |
|
--ignore-blank-lines |
Іґнорувати зміни, що лише вставляють чи додають пусті рядки. |
|
--ignore-case |
Іґнорувати зміни реґістру; Вважати великі та малі букви тотожними. |
|
--ignore-matching-lines= реґулярний_вираз |
Іґнорувати зміни, що лиш додають чи видаляють рядки узгоджені з арґументом реґулярний_вираз . |
|
--ignore-space-change |
Іґнорувати зміни в кількості пробілів. . |
|
--initial-tab |
Виводити табуляцію замість пробілу перед текстом у рядку в нормальному та контекстному форматах. Таким чином, вирівнювання табуляцій у рядку виглядає нормально. |
|
-l |
Пропустити вивід через pr для розділу на сторінки. |
|
-L мітка
|
Вживати мітку замість назви файлу у заголовках контекстного та та об'єднаного формату. |
|
--left-column |
Друк лише лівого стовпця з двох спільних рядків при форматі в дві колонки. |
|
--line-format= |
Вживати формат для виводу всіх вхідних рядків у форматі if-then-else (якщо-то-інакше). |
|
--minimal |
Змінити алґоритм для можливого знаходження меншого набору змін. Це сповільнює diff (іноді значно). |
|
-n |
Вивід відмінностей у RCS форматі; Подібне до -f крім того, що кожна команда вказує кількість змінених рядків. |
|
-N
|
При порівнянні тек, якщо файл знайдено в лише в одній з них, уважати, що він існує, але пустий, у іншій теці. |
|
--new-group-format= формат |
Вживати формат для виводу груп рядків лише з другого файлу у форматі if-then-else (якщо-то-інакше). |
|
--new-line-format= формат |
Вживати формат для виводу рядка лише з другого файлу у форматі if-then-else (якщо-то-інакше). |
|
--old-group-format= формат |
Вживати формат для виводу груп рядків лише з першого файлу у форматі if-then-else (якщо-то-інакше). |
|
--old-line-format= формат |
Вживати формат для виводу рядка лише з першого файлу у форматі if-then-else (якщо-то-інакше). |
|
-p |
Показати, якій функції мови C належить кожна зміна. |
|
-P |
При порівнянні тек, якщо файл існує лише у другій з двох тек, уважати, що він існує, але пустий у першій. |
|
--paginate |
Пропустити вивід через pr для розбиття на сторінки. |
|
-q |
Лише повідомити чи файли різні, а не подробиці відмінностей. |
|
-r |
При порівнянні тек, рекурсивно порівнювати будь-які виявлені підтеки. |
|
--rcs |
Вивести відмінності у RCS-форматі; Подібне до -f , але кожна команда вказує кількість змінених рядків. |
|
--recursive |
При порівнянні тек, рекурсивно порівнювати будь-які виявлені підтеки. |
|
--report-identical-files
|
Повідомити, коли два файли однакові. |
|
-S файл |
При порівнянні тек, почати з файлу файл . Це вживається для продовження перерваного порівняння. |
|
--from-file= файл |
Порівнювати файл з усіма операндами. файл може бути текою. |
|
--to-file= файл |
Порівняти всі операнди з файлом . файл може бути текою. |
|
--sdiff-merge-assist |
Вивід додаткової інформації, необхідної sdiff . sdiff вживає цю опцію, коли запускає diff . Ця опція не призначена для прямого використання користувачем. |
|
--show-c-function |
Показати, якій функції мови C належить кожна зміна. |
|
--show-function-line= реґулярний_вираз |
У контекстному та об'єднаному форматах, для кожного блоку відмінностей, показати останній попередній рядок, відповідний до арґументу реґулярний_вираз . |
|
--side-by-side |
Вживати формат виводу в два стовпці. |
|
--speed-large-files |
Вживати евристику для прискорення обробки великих файлів з багатьма розсіяними малими відмінностями. |
|
--starting-file= file |
При порівнянні тек, почати з файлу файл . Це вживається для продовження перерваного порівняння. |
|
--suppress-common-lines |
Не виводити однакові рядки при двостовпцевому виводі. |
|
-t |
Розгортати табуляцію у пробіли на виводі, для збереження вирівнювання відступів у вхідних файлах. |
|
-T |
Виводити табуляцію замість пробілу перед текстом у рядку в нормальному та контекстному форматах. Таким чином, вирівнювання табуляцій у рядку виглядає нормально. |
|
--text |
Вважати всі файли текстовими й обробляти їх рядок за рядком, навіть якщо вони не схожі на текстові. |
|
-u |
Вживати об'єднаний формат виводу. |
|
--unchanged-group-format= формат |
Вживати формат для виводу групи спільних рядків узятих з обох файлів у форматі if-then-else (якщо-то-інакше). |
|
--unchanged-line-format= формат |
Вживати формат для виводу рядків спільних для обох файлів у форматі if-then-else (якщо-то-інакше). |
|
--unidirectional-new-file |
При порівнянні тек, якщо файл існує лише у другій з двох тек, уважати, що він існує, але пустий у іншій. |
|
-U кількість_рядків
|
Вживати об'єднаний формат виводу, показуючи дану кількість_рядків рядків, або три, якщо кількість_рядків не дано. Для нормальної роботи patch звично треба хоча б два рядки контексту. |
|
-v
|
Вивести номер версії diff . |
|
-w |
Не враховувати пробіли при порівнянні рядків. |
|
-W кількість_стовпців
|
Встановити ширину виводу в кількість_стовпців у двостовпцевому форматі. |
|
-x зразок |
При порівнянні тек, пропускати файли та підтеки, основа назви яких відповідає зразку . |
|
-X файл |
При порівнянні тек, пропускати файли та підтеки, основа назви яких відповідає будь-якому зразку, що міститься в файлі . |
|
-y |
Вживати двостовпцевий формат виводу. |
ДИВІТЬСЯ ТАКОЖ
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).
ДІАГНОСТИКА
Стан завершення 0 означає відмінностей не знайдено, 1 означає знайдено деякі відмінності, 2 означає помилку.

