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

How Compare Two Files Linux



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

Итак, как разница команда действительно функционирует? В разница Команда сравнивает два файла и выводит список различий между ними. Точнее, он дает список изменений, которые необходимо внести в первый файл, чтобы он соответствовал второму файлу. В разница Команда также используется программистами, чтобы понять разницу между двумя файлами исходного кода для разработки исправлений.







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



Как использовать команду diff в Linux для сравнения файлов:

Синтаксис разница команда упоминается ниже:



$разница [параметры] [file1] [файл2]

Сначала создайте два файла. Я создаю текстовые файлы с именем test_file_1.txt а также test_file_2.txt . Эти файлы содержат содержимое с небольшой разницей:





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



$разницаtest_file_1.txt test_file_2.txt

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

Сравнение файлов помечено, и каждая метка имеет номер с каждой стороны. Формат следующий:

[Номер строки файла 1] [Метка (a, c, d)] [Номер строки файла 2]

Есть три метки:

  • к - Добавить: добавить содержимое в первый файл для синхронизации со вторым файлом.
  • c - Изменить: указывает, что необходимо изменить содержимое первого файла, чтобы оно соответствовало второму файлу.
  • d - Удалить: удаление содержимого из первого файла для сопоставления со вторым.

2d1 указывает на удаление строки номер 2 первого файла, чтобы он соответствовал второму файлу из строки номер 1.

Сходным образом, 4c3 означает внесение изменений в четвертую строку первого файла, чтобы она соответствовала строке номер 3 второго файла, поскольку обе строки немного отличаются.

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

$разница -а также 60test_file_1.txt test_file_2.txt

В приведенном выше выводе содержимое test_file_1.txt отображается слева, а содержимое text_file_2.txt отображается справа. Разница обозначается символами:

  • | - Строка во втором файле другая
  • > - Строка дополнительная во втором файле
  • <— Line has been deleted from the second file

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

$разница -а также 60 --suppress-common-linestest_file_1.txt test_file_2.txt

Как получить вывод в одной строке с помощью команды diff:

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

$разница -qtest_file_1.txt test_file_2.txt

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

$cptest_file_1.txt test_file_3.txt

Будет создан новый файл с именем test_file_3.txt содержащие то же содержание, что test_file_1.txt имеет. Теперь используйте:

$разница -qtest_file_1.txt test_file_2.txt

Так как оба файла имеют одинаковое содержимое, то вывода не будет.

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

Чтобы получить сравнение в контекстном режиме, -c опция будет использоваться с разница команда:

$разница -ctest_file_1.txt test_file_2.txt

Давайте проанализируем вывод.

Чтобы сохранить разницу, первый файл обозначается *** вместе с датой и временем создания, а второй файл обозначается -.

Следующая строка обозначает диапазон строк, рассматриваемых при сравнении. Для первого файла это *** 1,6 **** а для второго файла это —1,5—- :

Разница обозначается символами:

  • +: Строка отсутствует в первом файле. Вставьте его в первый файл или удалите из второго файла, чтобы он соответствовал обоим файлам.
  • -: строка существует в первом файле, но отсутствует во втором файле. Попробуйте вставить его во второй файл или удалить из первого, чтобы он соответствовал обоим файлам.
  • ! : Строка требует изменения для соответствия.

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

Унифицированный режим очень похож на контекстный, но без избыточной информации. Мы используем флаг -u :

$разница -utest_file_1.txt test_file_2.txt

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

Как игнорировать чувствительность к регистру при использовании команды diff:

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

$разница test_file_1.txt test_file_2.txt

Для демонстрации я сделал D из Глубоко в в первом файле маленькие:

Как видно в первой команде, разница указана; при использовании эта разница была удалена.

Некоторые другие полезные опции разница команды перечислены ниже:

Вариант Описание
Эта опция обрабатывает все файлы как текстовые файлы.
-B Он игнорирует модификацию, когда все строки пусты.
-А ТАКЖЕ Эта опция игнорирует расширение вкладки
Он игнорирует изменения, в которых совпадают все строки
-s Выдает вывод, когда два файла идентичны
Он игнорирует все пустое пространство
-С УЧАСТИЕМ Он игнорирует пробелы в конце строки

Как использовать редактор Vim для сравнения двух файлов:

Другой метод сравнения двух файлов - использование vimdiff команда. Для этого вам необходимо установить vim:

$судоподходящийустановить я пришел

Теперь для сравнения двух файлов используйте:

$vimdiff test_file_1.txt test_file_2.txt

Оба файла будут открыты рядом. Несоответствующая часть будет выделена:

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

Другой подход - это своего рода расширение разница команда. Вы можете сделать сравнение более узнаваемым, добавив к нему цвета. Для установки используйте:

$судоподходящийустановитьColordiff

Для сравнения файлов используйте:

$colordiff test_file_1.txt test_file_2.txt

Вы можете заменить разница с участием Colordiff чтобы получить стандартный вывод разница команда в цветном формате.

Заключение:

Для сравнения файлов в Linux и даже в macOS используется служебная программа, которая называется diff. Утилита diff сравнивает два файла и дает информацию о различиях между ними. Разработчики в основном используют команду diff для создания файлов исправлений.

В этом руководстве мы подробно обсудили разница команда и как ее использовать для сравнения двух файлов с разными параметрами. Мы также научились использовать Colordiff чтобы различия между файлами были более заметными. Но если вам сложно использовать утилиту на основе терминала, есть также некоторые инструменты на основе графического интерфейса, такие как Kompare, DiffMerge, Meld - Diff Tool и Diffuse - GUI Giff Tool.