Команди Linux

diff Приклади команд у Linux

diff Приклади команд у Linux
Команда diff - це аналіз або інформативна команда, яка друкує відмінності між файлами, аналізуючи їх рядково за рядком або директоріями, одночасно інформуючи користувача про необхідні зміни, щоб зробити файли рівними. Цей підручник зосереджений на команді diff.

Перед початком створіть два файли за допомогою будь-якого текстового редактора (нано використовується в цьому посібнику) з однаковим вмістом:

# 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 -wi diffsample2 diffsample1

Команда diff має десятки доступних опцій, які можна застосувати для ігнорування, зміни вихідних даних, розрізнення стовпців за наявності тощо. Ви можете отримати додаткову інформацію про ці параметри за допомогою команди man або за адресою http: // man7.org / linux / man-pages / man1 / diff.1.html. Сподіваюсь, ця стаття з прикладами команд diff у Linux була корисною. Продовжуйте слідкувати за LinuxHint, щоб отримати додаткові поради та оновлення щодо Linux та мереж.

Найкращі лабораторні ігри Oculus App
Якщо ви є власником гарнітури Oculus, то вам потрібно дізнатися про бокове завантаження. Бокове завантаження - це процес встановлення негарнітного вмі...
Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...
5 найкращих аркадних ігор для Linux
В наш час комп’ютери - це серйозні машини, що використовуються для ігор. Якщо ви не можете отримати новий високий бал, ви зрозумієте, що я маю на уваз...