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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 diff file1 file2 

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

 2,4c2,3 
<10 зеленых бутылок на стене
<Если одна зеленая бутылка случайно упадет
<На стене будет 9 зеленых бутылок
...
> Если одна зеленая бутылка случайно упадет
> На стене будет 9 зеленых бутылок

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

Вы можете видеть, что различия между этими двумя файлами следующие:

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

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

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

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

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

 diff -q file1 file2 

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

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

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

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

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

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

 diff -s file1 file2 

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

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

Как произвести различия бок о бок

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

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

 diff -y file1 file2 

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

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

Оцените статью
Solutics.ru
Добавить комментарий