Перед началом создайте два файла с одинаковым содержимым с помощью любого текстового редактора (в данном руководстве используется nano):
# nano diffsample1
Внутри пасты:
LinuxHint публикует для вас лучший контент
Нажмите CTRL+Икс и Y, чтобы сохранить и выйти.
Создайте второй файл с именем diffsample2 с тем же содержимым:
# nano diffsample2
Примечание: обратите внимание на пробелы и табуляции, файлы должны быть на 100% равны.
Нажмите CTRL+Икс и Y, чтобы сохранить и выйти.
# diff diffsample1 diffsample2
Как видите, вывода нет, не нужно что-то делать, чтобы файлы были равны, потому что они уже равны.
Теперь давайте отредактируем файл diffsample2, чтобы внести некоторые изменения:
# nano diffsample2Тогда давайте заменим слово «содержание» на «советы»:
Нажмите CTRL+Икс а также Y сохранить и выйти.
Теперь запустите:
# diff diffsample1 diffsample2Давайте посмотрим на результат:
Вывод выше, «3c3» означает «Строка 3 первого файла должна быть заменена на строку 3 второго файла». Дружественная часть вывода - это то, что он показывает нам, какой текст нужно изменить («контент для вас" для "советы для вас”)
Это показывает нам, что ссылка на команду diff - это не первый файл, а второй, поэтому третья строка первого файла (первые 3) должна быть изменена (C) как третья строка второго файла (вторая 3).
Команда diff может отображать 3 символа:
c: этот персонаж инструктирует Изменять должно быть сделано.
а: этот персонаж наставляет что-то должно быть Добавлен.
d: этот персонаж наставляет что-то должно быть Удалено.
Первые числа перед символом относятся к первому файлу, а числа после символов относятся ко второму файлу.
Символ < belongs to the first file and the symbol > ко второму файлу, который используется как ссылка.
Давайте инвертируем порядок файлов вместо того, чтобы запускать
# diff diffsample1 diffsample2запустить:
# diff diffsample2 diffsample1Вы можете увидеть, как порядок был инвертирован, и теперь файл diffsample1 используется в качестве ссылки, и он дает нам указание изменить «советы для вас» на «контент для вас», это был предыдущий результат:
Теперь отредактируем файл diffsample1 следующим образом:
Удалите все строки, кроме первой в файле diffsample1. Затем запустите:
# diff diffsample2 diffsample1
Как видите, поскольку мы использовали файл diffsample1 в качестве ссылки, для того, чтобы сделать файл diffsample2 точно таким же, нам нужно удалить (d) строки вторая и третья (2,3) как в первом файле и первых строках (1) будет равно.
Теперь давайте изменим порядок и вместо запуска «# diff diffsample2 diffsample1 ” запустить:
# diff diffsample1 diffsample2
Как видите, в то время как в предыдущем примере нам предлагалось удалить, в этом мы добавляем (а) строки 2 и 3 после первой строки файла (1).
Теперь давайте поработаем над свойством этой программы, чувствительным к регистру.
Отредактируйте файл diffsample2 следующим образом:
И отредактируйте файл diffsample1 как:
Единственное отличие - заглавные буквы в файле diffsample2. Теперь давайте снова сравним его, используя diff:
# diff diffsample1 diffsample2
Как вы можете видеть, различие обнаруживает различия, заглавные буквы, мы избегаем различий в обнаружении заглавных букв, если нас не интересует регистр, добавляя -я вариант:
# diff -i diffsample1 diffsample2
Отличий не обнаружено, выявление случаев отключено.
Теперь давайте изменим формат вывода, добавив опцию -ты используется для печати унифицированных выходов:
Кроме того, для даты и времени на выходе отображается значок - а также + символ, что нужно удалить, а что добавить, чтобы файлы уравновешивались.
В начале этой статьи я сказал, что пробелы и табуляции должны быть одинаковыми в обоих файлах, так как они также обнаруживаются командой diff, если мы хотим, чтобы команда diff игнорировала пробелы и табуляции, нам нужно применить -ш вариант.
Откройте файл diffsample2 и добавьте пробелы и табуляции:
Как видите, я добавил пару табуляций после «лучших» во второй строке, а также пробелы во всех строках, закройте, сохраните файл и запустите:
# diff diffsample1 diffsample2
Как видите отличия были обнаружены, помимо заглавных букв. Теперь применим параметр -ш чтобы указать diff игнорировать пробелы:
Как вы видите, несмотря на разницу в таблице, разница обнаруживается только как разница, заглавные буквы.
Теперь давайте снова добавим параметр -i:
У команды diff есть десятки доступных опций, которые можно применить, чтобы игнорировать, изменять вывод, различать столбцы, если они есть, и т. Д. Дополнительную информацию об этих параметрах можно получить с помощью команды man или по адресу http: // man7.org / linux / man-страницы / man1 / diff.1.html. Надеюсь, вы нашли эту статью с примерами команд diff в Linux полезной. Следите за LinuxHint для получения дополнительных советов и обновлений по Linux и сети.