Skip to main content

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

Как сравнить два документа между собой (Июнь 2025)

Как сравнить два документа между собой (Июнь 2025)

:

Anonim

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

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

Как показано в связанном руководстве, есть много способов открыть окно терминала с помощью Linux. Самое простое - нажать клавиши CTRL, ALT и T одновременно.

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

Чтобы следовать этому руководству, создайте файл с именем «file1» и введите следующий текст:

10 зеленых бутылок, стоящих на стене

10 зеленых бутылок, стоящих на стене

Если одна зеленая бутылка должна случайно упасть

На стене будет стоять 9 зеленых бутылок

Вы можете создать файл, выполнив следующие инструкции:

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

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

  3. Нажмите CTRL и O, чтобы сохранить файл.

  4. Нажмите CTRL и X, чтобы выйти из файла.

Теперь создайте еще один файл с именем «file2» и введите следующий текст:

10 зеленых бутылок, стоящих на стене

Если 1 зеленая бутылка должна случайно упасть

На стене стояли 9 зеленых бутылок

Вы можете создать файл, выполнив следующие инструкции:

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

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

  3. Нажмите CTRL и O, чтобы сохранить файл.

  4. Нажмите CTRL и X, чтобы выйти из файла.

Как сравнить два файла с помощью Linux

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

Простейшая форма команды diff заключается в следующем:

diff file1 file2

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

2,4c2,3

<10 зеленых бутылок, стоящих на стене

<Если одна зеленая бутылка должна случайно упасть

<На стене будет стоять 9 зеленых бутылок

> Если 1 зеленая бутылка должна случайно упасть

> На стене будет стоять 9 зеленых бутылок

Первоначально выход может показаться запутанным, но как только вы поняли терминологию, это довольно логично.

Используя собственные глаза, вы можете видеть, что различия между двумя файлами выглядят следующим образом:

  • Второй файл имеет только три строки, тогда как первый файл имеет 4.
  • Второй файл говорит «1 зеленая бутылка» на третьей строке, тогда как в первом файле говорится «одна зеленая бутылка»,
  • Во втором файле говорится «есть», а не «есть» на последней строке

Результат команды diff показывает, что между строками 2 и 4 первого файла и строками 2 и 3 второго файла имеются различия.

Затем он перечисляет строки от 2 до 4 из первого файла, за которым следуют две разные строки во втором файле.

Как просто показать, если файлы различны

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

diff -q file1 file2

Если файлы отличаются друг от друга, отобразится следующее:

Файлы file1 и file2 отличаются

Если файлы одинаковы, ничего не отображается.

Как показать сообщение, если файлы одинаковы

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

Чтобы выполнить это требование с помощью команды diff, вы можете использовать следующую команду :.

diff -s file1 file2

Теперь, если файлы совпадают, вы получите следующее сообщение:

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

Как создавать различия между собой

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

Вы можете изменить вывод команды diff, чтобы результаты показывались рядом. Для этого выполните следующую команду:

diff -y file1 file2

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

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

Ограничение ширины столбцов

При сравнении двух файлов рядом может быть трудно читать, если в файлах много столбцов текста.

Чтобы ограничить количество столбцов, используйте следующую команду:

diff --width = 5 file file2

Как игнорировать различия между случаями при сравнении файлов

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

diff -i file1 file2

Как игнорировать конечное белое пространство в конце строки

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

diff -Z file1 file2

Как игнорировать все пробелы белого пространства между двумя файлами

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

Файл diff -w file1 file2

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

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

diff -B file1 file2

Резюме

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

man diff

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

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