Практикум 6. Bash
diff
Команда diff предназначена для вывода различий между двумя файлами. Она построчно выводит все изменения, сделанные в файле. Делает она это в специальном формате, называемом также diff, или, что более распространено, патч. Такое имя объясняется тем, что этот вывод может быть применен с помощью команды patch для изменения одинаковых файлов на разных устройствах.
Синтаксис команды:
diff original newVersion
Вывод идет в stdout. Вывод в файл идет через перенаправление потоков.
Формат вывода
В традиционном формате вывода a означает добавлено (от англ. add), d — удалено, с — изменено. Перед буквами a, d или c стоят номера строк исходного файла, после них — номера строк конечного файла. Каждая строка, которая была добавлена, удалена или изменена, предваряется угловыми скобками. Скобки > означают, что в новом файле строки были добавлены, а < что удалены.
Опции
-q - Если файлы различаются, команда сообщает об этом и не создает патч. Если одинаковые, вывод не отличается от запуска команды без аргументов.
-s - Если файлы одинаковые, команда сообщает об этом. Если разные, вывод не отличается от запуска команды без аргументов.
-qs - Сравнивает файлы, выводит либо то, что они одинаковые, либо что они разные.
-r - Рекурсивно проверяет субдиректории.
-i - Игнорирование различий регистра.
-Z - Игнорирование пробелов в конце строки
-b - Игнорирование повторения пробелов в середине строки
-w - Игнорирование всех повторений пробелов в строке. При этом любое количество пробелов в начале строки до первого значащего символа также игнорируется.