Як порівняти два текстові файли за допомогою Linux

Що потрібно знати

  • Щоб порівняти, запустіть: файл diff1 файл2
  • Покажіть, чим вони відрізняються за допомогою: diff -q файл1 файл2
  • Покажіть, як вони однакові з: diff -s файл1 файл2

У цій статті пояснюється, як використовувати Linux для порівняння двох файлів і виведення відмінностей між файлами на екран або у файл. Ви не будете встановлювати спеціальне програмне забезпечення для порівняння файлів за допомогою Linux, але вам потрібно знати, як це зробити відкрити вікно терміналу.

Створіть файли для порівняння

Якщо ви хочете дотримуватися цього посібника, створіть два текстові файли, які містять подібний, але різний текст.

Створіть перший файл

Створіть файл під назвою файл 1 а потім введіть наступний текст:

10 зелених пляшок, що стоять на стіні
10 зелених пляшок, що стоять на стіні
Якщо одна зелена пляшка випадково впаде
На стіні стоять 9 зелених пляшок

Щоб створити цей файл, дотримуйтесь цих інструкцій:

  1. Відкрийте файл, ввівши таку команду:

    nano файл 1
    Команда терміналу: nano file1

    Найшвидший спосіб відкрити вікно терміналу в Linux - це натиснути кнопку CTRL+ALT+T ключі одночасно.

  2. Введіть текст редактор нано.

    Файл терміналу 1 в Nano
  3. Натисніть CTRL+O щоб зберегти файл.

  4. Натисніть CTRL+X щоб вийти з файлу.

Створіть другий файл

Далі створіть інший файл під назвою файл 2 і введіть наступний текст:

10 зелених пляшок, що стоять на стіні
Якщо 1 зелена пляшка випадково впаде
На стіні стояло б 9 зелених пляшок

Щоб створити цей файл, дотримуйтесь цих інструкцій:

  1. Відкрийте файл, ввівши таку команду:

    nano файл 2
  2. Введіть текст у редакторі nano.

    Файл терміналу 2 в Nano
  3. Натисніть CTRL+O щоб зберегти файл.

  4. Натисніть CTRL+X щоб вийти з файлу.

Як порівняти два файли за допомогою Linux

Команда, що використовується в Linux, щоб показати відмінності між двома файлами, називається командою diff.

Найпростіша форма команди diff виглядає наступним чином:

файл diff1 файл2

Якщо файли однакові, під час використання цієї команди вихідні дані не відображаються. Однак, оскільки є відмінності, результат подібний до наступного:

2,4c2,3
< 10 зелених пляшок, що стоять на стіні
< Якщо одна зелена пляшка випадково впала
< На стіні стояло б 9 зелених пляшок
...
> Якщо 1 зелена пляшка випадково впаде
> На стіні стояло б 9 зелених пляшок

Спочатку результат здається заплутаним, але як тільки ви зрозумієте термінологію, це буде досить логічно.

Команда термінала " diff file1 file2" в Linux

Різниця між двома файлами полягає в наступному:

  • Другий файл містить лише три рядки. У першому файлі чотири.
  • Другий файл каже 1 зелена пляшка на третьому рядку. У першому файлі написано одна зелена пляшка.
  • Другий файл каже червоний замість там би на кінцевій лінії.

Результати команди diff показують, що між рядками другим і четвертим першого файлу та рядками другим і третім другого файлу є відмінності.

Потім перелічено рядки від двох до чотирьох з першого файлу, а потім два різних рядки в другому файлі.

Як показати, лише якщо файли різні

Якщо ви тільки хочете знати, чи відрізняються файли, і вас не цікавить, які рядки відрізняються, виконайте таку команду:

diff -q файл1 файл2

Якщо файли відрізняються, відображається таке:

Файли file1 і file2 відрізняються

Якщо файли однакові, нічого не відображається.

Як показати повідомлення, якщо файли однакові

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

Щоб виконати цю вимогу за допомогою команди diff, скористайтеся такою командою:

diff -s файл1 файл2

Якщо файли однакові, з’явиться таке повідомлення:

Файли file1 і file2 ідентичні

Як створити відмінності пліч-о-пліч

Якщо є кілька відмінностей, це може бути незрозумілим щодо того, які насправді відмінності між двома файлами. Ви можете змінити вихід команди diff, щоб результати відображалися поруч. Для цього виконайте таку команду:

diff -y файл1 файл2

Вихід для файлу використовує | символ, що показує різницю між двома рядками, a < щоб показати рядок, який було видалено, і a > щоб показати рядок, який був доданий.

Команда термінала " diff -y file1 file2" в Linux

Коли ви запускаєте команду за допомогою демонстраційних файлів у цій статті, усі рядки відображаються як різні, крім останнього рядка файл 2, який відображається як видалений.

Обмежити ширину стовпця

Порівнюючи два файли поруч, може бути важко прочитати, якщо файли містять кілька стовпців тексту. Щоб обмежити кількість стовпців, скористайтеся такою командою:

diff --width=5 файл1 файл2

Як ігнорувати розбіжності в регістрах під час порівняння файлів

Якщо ви хочете порівняти два файли, але вам байдуже, чи однаковий регістр літер між двома файлами, скористайтеся такою командою:

diff -i файл1 файл2

Як ігнорувати кінцевий пробіл в кінці рядка

Якщо ви помітите багато відмінностей під час порівняння файлів і відмінності викликані пробілами в кінці рядків, запобіжіть їх відображенню як зміни, виконавши таку команду:

diff -Z файл1 файл2

Як ігнорувати всі різниці пробілів між двома файлами

Якщо вас цікавить лише текст у файлі, і вам байдуже, чи більше пробілів в одному, ніж в іншому, скористайтеся такою командою:

diff -w файл1 файл2

Як ігнорувати порожні рядки під час порівняння двох файлів

Якщо вас не хвилює, що в одному файлі можуть бути зайві порожні рядки, порівняйте файли за допомогою такої команди:

diff -B файл1 файл2

Резюме

Ви можете знайти більше інформації, прочитавши посібник для команди diff.

людина розн

Команду diff можна використовувати в найпростішій формі, щоб показати лише відмінності між двома файлами. Ви також можете використовувати його для створення файл diff як частина а стратегія виправлення.

Ще одна команда, яку можна використовувати для порівняння файлів команду cmp. Це порівнює файли байт за байтом.