Scroll to navigation

diff(1) 2007-10-27-16:31 diff(1)

НАЗВА

diff - знайти відмінності між двома файлами

ЗВІД

diff [опції] файл-з файл-до

ОПИС

У найпростішому випадку, diff порівнює вміст двох файлів: файл-з та файл-до . Ім'я файлу - (дефіс) означає текст, прочитаний зі звичного вводу. У особливому разі, diff - - порівнює копію звичного вводу з ним же. Якщо файл-з є текою, а файл-до ні, diff бере для порівняння файл у теці файл-з з назвою файл-до , і навпаки. Файл, що не є текою не повинен бути - . Якщо і файл-з , і файл-до є теками, diff порівнює відповідні файли в обох теках, у алфавітному порядку; це порівняння не рекурсивне, поки не вказано опцію -r чи --recursive . diff ніколи не порівнює дійсний вміст теки, так ніби вона є файлом. Явно описаний файл не може бути звичним вводом, тому що звичний ввід безіменний, і поняття "файл з тим же ім'ям" не застосовне. Ключі diff починаються з - , тож звично назви файл-з та файл-до не можуть починатись з - . проте, арґумент -- вказує вважати решту арґументів назвами файлів, навіть якщо вони починаються з - .

Опції

Далі йде звід усіх опцій, що приймає GNU diff . Більшість опцій мають дві тотожні назви, одна з них є одною буквою, якій передує - , інша є довгою назвою, якій передує -- . Кілька однобуквених оцій (якщо вони без арґументів) можна зчепити в одне слово командного рядка: -ac тотожне до -a -c . Довгі назви можна скоротити до будь-якого унікального префіксу їх назви. Дужки ( [ та ] ) вказують, що опція бере необов'язковий арґумент.

- кількість_рядків

Показати кількість_рядків (ціле число) рядків контексту. Ця опція сама не вказує формат виводу; Вона не діє без -c чи -u . Ця опція застаріла. Для вірної дії patch звично потрібно хоча б два рядки контексту.

-a

Вважати всі файли текстовими й обробляти їх рядок за рядком, навіть якщо вони не схожі на текстові.

-b

Іґнорувати зміни в кількості пробілів.

-B

Іґнорувати зміни, що лише вставляють чи додають пусті рядки.

--brief

Повідомити лише чи відрізняються файли, а не подробиці відмінностей.

-c

Вживати контекстний формат виводу.

-C кількість_рядків

"--context[=" кількість_рядків "]"

Вживати контекстний формат виводу, показуючи кількість_рядків (ціле число) рядків контексту, або три, якщо кількість_рядків не вказано. Для вірної дії, patch звичайно потребує хоча б два рядки контексту.

--changed-group-format= формат

Вживати формат для виводу групи рядків, що містять відмінні рядки обох файлів у форматі if-then-else (якщо-то-інакше).

-d

Змінити алґоритм для можливого знаходження меншого набору змін. Це сповільнює diff (іноді значно).

-D назва

Робити об'єднаний вивід у форматі if-then-else (якщо-то-інакше), беручи умовою макрос назва допроцесора.

-e

"--ed"

Зробити вивід, що є робочим скриптом для 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 мітка

"--label=" мітка

Вживати мітку замість назви файлу у заголовках контекстного та та об'єднаного формату.

--left-column

Друк лише лівого стовпця з двох спільних рядків при форматі в дві колонки.

--line-format=

Вживати формат для виводу всіх вхідних рядків у форматі if-then-else (якщо-то-інакше).

--minimal

Змінити алґоритм для можливого знаходження меншого набору змін. Це сповільнює diff (іноді значно).

-n

Вивід відмінностей у RCS форматі; Подібне до -f крім того, що кожна команда вказує кількість змінених рядків.

-N

"--new-file"

При порівнянні тек, якщо файл знайдено в лише в одній з них, уважати, що він існує, але пустий, у іншій теці.

--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"

Повідомити, коли два файли однакові.

-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 кількість_рядків

"--unified[=" кількість_рядків "]"

Вживати об'єднаний формат виводу, показуючи дану кількість_рядків рядків, або три, якщо кількість_рядків не дано. Для нормальної роботи patch звично треба хоча б два рядки контексту.

-v

"--version"

Вивести номер версії diff .

-w

Не враховувати пробіли при порівнянні рядків.

-W кількість_стовпців

"--width=" кількість_стовпців

Встановити ширину виводу в кількість_стовпців у двостовпцевому форматі.

-x зразок

При порівнянні тек, пропускати файли та підтеки, основа назви яких відповідає зразку .

-X файл

При порівнянні тек, пропускати файли та підтеки, основа назви яких відповідає будь-якому зразку, що міститься в файлі .

-y

Вживати двостовпцевий формат виводу.

ДИВІТЬСЯ ТАКОЖ

cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).

ДІАГНОСТИКА

Стан завершення 0 означає відмінностей не знайдено, 1 означає знайдено деякі відмінності, 2 означає помилку.

2007-10-27-16:31 © 2005-2007 DLOU, GNU FDL