Команды Linux

Примеры команд diff в Linux

Примеры команд diff в Linux
Команда diff - это команда анализа или информативная команда, которая распечатывает различия между файлами, анализируя их построчно, или каталоги рекурсивно, информируя пользователя о том, какие изменения необходимы для приведения файлов в соответствие, этот момент важен для понимания результатов diff. В этом руководстве основное внимание уделяется команде diff.

Перед началом создайте два файла с одинаковым содержимым с помощью любого текстового редактора (в данном руководстве используется 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 -wi diffsample2 diffsample1

У команды diff есть десятки доступных опций, которые можно применить, чтобы игнорировать, изменять вывод, различать столбцы, если они есть, и т. Д. Дополнительную информацию об этих параметрах можно получить с помощью команды man или по адресу http: // man7.org / linux / man-страницы / man1 / diff.1.html. Надеюсь, вы нашли эту статью с примерами команд diff в Linux полезной. Следите за LinuxHint для получения дополнительных советов и обновлений по Linux и сети.

Контроль и управление перемещением мыши между несколькими мониторами в Windows 10
Диспетчер мыши с двумя дисплеями позволяет контролировать и настраивать движение мыши между несколькими мониторами, замедляя ее движения возле границы...
WinMouse позволяет настраивать и улучшать движение указателя мыши на ПК с Windows
Если вы хотите улучшить функции указателя мыши по умолчанию, используйте бесплатное ПО WinMouse. Он добавляет дополнительные функции, которые помогут ...
Левая кнопка мыши не работает в Windows 10
Если вы используете выделенную мышь со своим ноутбуком или настольным компьютером, но левая кнопка мыши не работает в Windows 10/8/7 по какой-то причи...