Перед початком створіть два файли за допомогою будь-якого текстового редактора (нано використовується в цьому посібнику) з однаковим вмістом:
# nano diffsample1
Внутрішня паста:
LinuxHint публікує найкращий для вас вміст
Натисніть CTRL+X та Y, щоб зберегти та вийти.
Створіть другий файл із назвою diffsample2 із однаковим вмістом:
# nano diffsample2
Примітка: зверніть увагу на пробіли та вкладки, файли повинні бути рівними на 100%.
Натисніть CTRL+X та Y, щоб зберегти та вийти.
# diff diffsample1 diffsample2
Як бачите, вихідних даних немає, не потрібно щось робити, щоб зробити файли рівними, оскільки вони вже рівні.
Тепер давайте відредагуємо файл diffsample2, щоб внести деякі зміни:
# nano diffsample2Тоді давайте замінимо слово «вміст» на «поради»:
Натисніть CTRL+X і Y щоб зберегти та вийти.
Тепер запустіть:
# diff diffsample1 diffsample2Давайте побачимо результат:
Вихідні дані "3c3" означають "Рядок 3 першого файлу слід замінити на рядок 3 другого файлу". Дружня частина результату полягає в тому, що вона показує нам, який текст потрібно змінити (“вміст для вас”Для“поради для вас")
Це показує нам посилання на команду diff - це не перший файл, а другий, тому третій рядок першого файлу (перший 3) повинен бути змінений (C) як третій рядок другого файлу (другий 3).
Команда diff може показувати 3 символи:
c: цей персонаж вказує а Зміна треба зробити.
a: цей персонаж вказує, що щось повинно бути Додано.
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
Як бачите, хоча попередній приклад наказав нам видалити, цей - додати (a) рядки 2 і 3 після першого файлу першого рядка (1).
Тепер давайте попрацюємо над чутливими до регістру властивостями цієї програми.
Відредагуйте файл diffsample2, наприклад:
І відредагуйте файл diffsample1 як:
Єдина відмінність - великі літери у файлі diffsample2. Тепер давайте порівняємо його, використовуючи diff ще раз:
# diff diffsample1 diffsample2
Як ви можете бачити різниці знайдених відмінностей, великих літер, ми уникаємо розпізнавання великих літер, якщо нас не цікавить регістр, додаючи -i варіант:
# diff -i diffsample1 diffsample2
Різниць не виявлено, виявлення справи було відключено.
Тепер давайте змінимо вихідний формат, додавши опцію -u використовується для друку уніфікованих виходів:
Крім того, до дати та часу на виході відображається символ - і + символ, що слід видалити, а що додати, щоб зробити файли рівними.
На початку цієї статті я сказав, що пробіли та вкладки повинні бути однаковими в обох файлах, оскільки вони також виявляються командою diff, якщо ми хочемо, щоб команда diff ігнорувала пробіли та вкладки, нам потрібно застосувати -w варіант.
Відкрийте файл diffsample2 і додайте пробіли та вкладки:
Як бачите, я додав пару вкладок після “найкращого” у другому рядку, а також пробіли у всіх рядках, закрийте, збережіть файл і запустіть:
# diff diffsample1 diffsample2
Як бачите, відмінності були знайдені, крім великих літер. Тепер давайте застосуємо опцію -w наказати diff ігнорувати порожні пробіли:
Як бачите, незважаючи на табличну різницю, різницю знайшли лише як різницю великих літер.
Тепер додамо опцію -i знову:
Команда diff має десятки доступних опцій, які можна застосувати для ігнорування, зміни вихідних даних, розрізнення стовпців за наявності тощо. Ви можете отримати додаткову інформацію про ці параметри за допомогою команди man або за адресою http: // man7.org / linux / man-pages / man1 / diff.1.html. Сподіваюсь, ця стаття з прикладами команд diff у Linux була корисною. Продовжуйте слідкувати за LinuxHint, щоб отримати додаткові поради та оновлення щодо Linux та мереж.