diff

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

diff — утиліта UNIX, використовується для показу списку різниць між двома файлами. Для текстових файлів різниця показується рядок за рядком у будь-якому з декількох форматів, зазначених в параметрах командного рядка. Цей список виводиться в термінах рядків тексту, тобто, показуючи які рядки потрібно вставити, видалити або замінити, щоб перетворити перший файл на другий. Для бінарних файлів diff повідомляє лише про факт різниці. Для однакових файлів diff не виводить нічого.

Стандартний формат виводу інформації[ред.ред. код]

Нормальний формат виводу команди виглядає так:

Команда зміни файлу
\< from-file-line
\< from-file-line ...
---
\> to-file-line
\> to-file-line ...

Всього є три типи команд зміни файлу. Кожна складається з номеру рядка, або з діапазона рядків, розділених комою, першого файлу, однієї літери (a, c,d) для ідентифікації команди зміни, та номеру рядка, або діапазона рядків, розділених комою, з другого файлу. Кожен номер рядка, є номером рядка файла, з якого він був узятий. Типи команд це:

'lar' — Додати рядки в діапазоні r другого файла після номера рядка l першого файла. Як приклад, «4a11,17» означає, додати рядки 11-17 з другого файла після 4 рядка першого файла; або, якщо приводити файл 2 до файлу 1, тоді видалити з файла 2 рядки 11-17.

'fct' — Замінити рядки в діапазоні f першого файла, рядками з діапазону t другого файла. Як приклад, «3,6c9,12» означає, замінити рядки 3-6 першого файла рядками 9-12 з другого файла; або, якщо приводити файл 2 до файлу 1, тоді замінити рядки 9-12 другого файла рядками 3-6 з першого файла.

'rdl' — Видалити рядки з діапазону r для першого файла. l вказує на місце вставки рядків r з першого файла в другий для оберненої логіки. Як приклад, «4,6d2» означає видалити рядки 4-6 з першого файлу; або, якщо приводити файл 2 до файлу 1, вставити рядки 4-6 першого файла в другий після рядка 2.

Приклади застосування[ред.ред. код]

  • Стандартне порівняння двох файлів
diff file1 file2
  • Отримання команд для редактора ed
diff -e file1 file2
  • Ігнорування верхнього і нижнього регістру символів
diff -i file1 file2
  • Ігнорування пустих місць (пробілів, табуляцій, порожніх рядків …)
diff -w file1 file2
  • Вивід тільки факту різниці файлів
diff -q file1 file2
diff -r dir1 dir2

Див. також[ред.ред. код]

  • WinMerge — вільна програма порівнювання файлів для Windows

Посилання[ред.ред. код]