Учебный сайт Якушева Александра


Практикум 6. Bash

diff

Команда diff предназначена для вывода различий между двумя файлами. Она построчно выводит все изменения, сделанные в файле. Делает она это в специальном формате, называемом также diff, или, что более распространено, патч. Такое имя объясняется тем, что этот вывод может быть применен с помощью команды patch для изменения одинаковых файлов на разных устройствах.
Синтаксис команды:

diff original newVersion

Вывод идет в stdout. Вывод в файл идет через перенаправление потоков.

Формат вывода

В традиционном формате вывода a означает добавлено (от англ. add), d — удалено, с — изменено. Перед буквами a, d или c стоят номера строк исходного файла, после них — номера строк конечного файла. Каждая строка, которая была добавлена, удалена или изменена, предваряется угловыми скобками. Скобки > означают, что в новом файле строки были добавлены, а < что удалены.

Опции

-q - Если файлы различаются, команда сообщает об этом и не создает патч. Если одинаковые, вывод не отличается от запуска команды без аргументов.

-s - Если файлы одинаковые, команда сообщает об этом. Если разные, вывод не отличается от запуска команды без аргументов.

-qs - Сравнивает файлы, выводит либо то, что они одинаковые, либо что они разные.

-r - Рекурсивно проверяет субдиректории.

-i - Игнорирование различий регистра.

-Z - Игнорирование пробелов в конце строки

-b - Игнорирование повторения пробелов в середине строки

-w - Игнорирование всех повторений пробелов в строке. При этом любое количество пробелов в начале строки до первого значащего символа также игнорируется.