В этом руководстве показано, как использовать Linux для сравнения двух файлов и вывода различий между файлами на экран или в файл. Вы не будете устанавливать специальное программное обеспечение для сравнения файлов с помощью Linux, но вам нужно знать, как открыть окно терминала .
Самый быстрый способ открыть окно терминала в Linux, чтобы нажать CTRL + ALT + T клавиш одновременно.
Создайте файлы для сравнения
Если вы хотите следовать этому руководству, создайте два текстовых файла, которые содержат похожий, но разный текст.
Создать первый файл
Создайте файл с именем file1 и введите следующий текст:
10 зеленых бутылок на стене
10 зеленых бутылок на стене
Если одна зеленая бутылка случайно упадет
На стене будет 9 зеленых бутылок
Чтобы создать этот файл, следуйте этим инструкциям:
-
Откройте файл, введя следующую команду:
нано файл1
-
Введите текст в нано-редактор .
-
Нажмите CTRL + O, чтобы сохранить файл.
-
Нажмите CTRL + X, чтобы выйти из файла.
Создайте второй файл
Затем создайте другой файл с именем file2 и введите следующий текст:
10 зеленых бутылок, стоящих на стене.
Если одна зеленая бутылка случайно упадет.
На стене будет 9 зеленых бутылок.
Чтобы создать этот файл, следуйте этим инструкциям:
-
Откройте файл, введя следующую команду:
нано файл2
-
Введите текст в нано-редактор.
-
Нажмите CTRL + O, чтобы сохранить файл.
-
Нажмите CTRL + X, чтобы выйти из файла.
Как сравнить два файла с помощью Linux
Команда, используемая в Linux для демонстрации различий между двумя файлами, называется командой diff.
Простейшая форма команды diff выглядит следующим образом:
diff file1 file2
Если файлы одинаковы, при использовании этой команды выходные данные не отображаются. Однако, поскольку есть различия, вывод похож на следующее:
2,4c2,3
<10 зеленых бутылок, стоящих на стене
<Если одна зеленая бутылка случайно упадет
<Там будет 9 зеленых бутылок, стоящих на стене
...
> Если одна зеленая бутылка случайно упадет
> Там будет 9 зеленых бутылки стоят на стене
Первоначально вывод кажется запутанным, но как только вы поймете терминологию, это будет довольно логично.
Различия между этими двумя файлами заключаются в следующем:
- Второй файл имеет только три строки. Первый файл имеет четыре.
- Во втором файле написано 1 зеленая бутылка в третьей строке. В первом файле написано одна зеленая бутылка .
- Второй файл говорит там бы вместо того , чтобы там было бы на последнюю строку.
Вывод команды diff показывает, что между строками 2 и 4 первого файла и строками 2 и 3 второго файла имеются различия.
Затем он перечисляет строки от двух до четырех из первого файла, за которыми следуют две разные строки во втором файле.
Как показать только если файлы разные
Если вы хотите знать только, отличаются ли файлы, и не интересуетесь, какие строки отличаются, выполните следующую команду:
diff -q file1 file2
Если файлы разные, отображается следующее:
Файлы file1 и file2 отличаются
Если файлы одинаковые, ничего не отображается.
Как показать сообщение, если файлы одинаковые
Когда вы запускаете команду, вы можете знать, что она работает правильно. Вы хотите, чтобы при запуске команды diff отображалось сообщение, являются ли файлы одинаковыми или разными
Чтобы выполнить это требование с помощью команды diff, используйте следующую команду:
diff -s file1 file2
Если файлы совпадают, это сообщение появляется:
Файлы file1 и file2 идентичны
Как произвести различия бок о бок
Если есть несколько различий, это может привести к путанице относительно того, каковы различия между этими двумя файлами. Вы можете изменить вывод команды diff, чтобы результаты отображались рядом. Для этого выполните следующую команду:
diff -y file1 file2
Вывод для файла использует | символ, чтобы показать разницу между двумя строками, <, чтобы показать удаленную строку, и >, чтобы показать добавленную строку.
Когда вы запускаете команду с использованием демонстрационных файлов в этой статье, все строки отображаются как разные, за исключением последней строки файла2 , которая отображается как удаленная.
Ограничить ширину столбца
При сравнении двух файлов рядом может быть трудно прочитать, если файлы имеют несколько столбцов текста. Чтобы ограничить количество столбцов, используйте следующую команду:
diff --width = 5 файл1 файл2
Как игнорировать различия в регистре при сравнении файлов
Если вы хотите сравнить два файла, но вам все равно, совпадает ли регистр букв между двумя файлами, используйте следующую команду:
diff -i file1 file2
Как игнорировать конечный пробел в конце строки
Если при сравнении файлов вы заметили много различий и различия вызваны пробелами в конце строк, не позволяйте им отображаться как изменения, выполнив следующую команду:
diff -Z file1 file2
Как игнорировать все различия белого пространства между двумя файлами
Если вас интересует только текст в файле, и вам все равно, есть ли в одном месте больше пробелов, используйте следующую команду:
diff -w file1 file2
Как игнорировать пустые строки при сравнении двух файлов
Если вас не волнует, что в одном файле могут быть лишние пустые строки, сравните файлы с помощью следующей команды:
diff -B file1 file2
Резюме
Вы можете найти больше информации, прочитав руководство по команде diff .
человек дифференциал
Команда diff может использоваться в простейшем виде, чтобы показать только различия между двумя файлами. Вы также можете использовать его для создания файла сравнения в рамках стратегии исправления .
Другая команда, которую вы можете использовать для сравнения файлов — это команда cmp . Это сравнивает файлы побайтно.