Как сравнить два текстовых файла в Linux

click fraud protection

Что нужно знать

  • Для сравнения запустите: diff file1 file2
  • Покажите, чем они отличаются: diff -q файл1 файл2
  • Покажите, как они совпадают с: diff -s файл1 файл2

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

Создайте файлы для сравнения

Если вы хотите следовать этому руководству, создайте два текстовых файла, содержащих похожий, но разный текст.

Создайте первый файл

Создайте файл с именем file1 а затем введите следующий текст:

10 зеленых бутылок, стоящих на стене
10 зеленых бутылок, стоящих на стене
Если одна зеленая бутылка случайно упадет
На стене будет стоять 9 зеленых бутылок

Чтобы создать этот файл, следуйте этим инструкциям:

  1. Откройте файл, набрав следующую команду:

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

    Самый быстрый способ открыть окно терминала в Linux - нажать кнопку CTRL + ALT + T ключи одновременно.

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

    Терминальный файл1 в Nano
  3. Нажмите CTRL + O чтобы сохранить файл.

  4. Нажмите CTRL + X для выхода из файла.

Создайте второй файл

Затем создайте еще один файл с именем файл2 и введите следующий текст:

10 зеленых бутылок, стоящих на стене
Если случайно упала 1 зеленая бутылка
На стене будет 9 зеленых бутылок

Чтобы создать этот файл, следуйте этим инструкциям:

  1. Откройте файл, набрав следующую команду:

    нано файл2
  2. Введите текст в редактор nano.

    Терминальный файл2 в Nano
  3. Нажмите CTRL + O чтобы сохранить файл.

  4. Нажмите CTRL + X для выхода из файла.

Как сравнить два файла в Linux

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

Самая простая форма команды diff следующая:

diff file1 file2

Если файлы совпадают, при использовании этой команды выходные данные не отображаются. Однако, поскольку есть различия, результат будет примерно таким:

2,4c2,3
<10 зеленых бутылок на стене
...
> Если 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

Вывод для файла использует | символ, чтобы показать разницу между двумя линиями, < чтобы показать строку, которая была удалена, и > чтобы показать добавленную строку.

Команда терминала " 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 можно использовать в простейшей форме, чтобы показать различия только между двумя файлами. Вы также можете использовать его для создания файл сравнения как часть стратегия исправления.

Еще одна команда, которую вы можете использовать для сравнения файлов: команда cmp. Это побайтно сравнивает файлы.