Bash сравнить два файла

Обновлено: 01.07.2024

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

[Вам также может понравиться: Как соединить два текстовых файла в Linux]

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

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

Создание текстовых файлов в Linux

Давайте создадим два примера файлов из терминала Linux. Убедитесь, что вы являетесь пользователем sudoer или имеете права sudo в используемой операционной системе Linux.

Мы заполним этот файл произвольным содержимым.

Давайте создадим второй файл.

Мы заполним этот файл содержимым, немного похожим на файл1.

Использование diff для сравнения файлов в Linux

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

Вывод различий между двумя файлами

Давайте реализуем первую попытку сравнения этих двух файлов:

 Сравните два файла в Linux

Сравните два файла в Linux

Мы можем интерпретировать этот вывод следующим образом:

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

Выявление двух одинаковых файлов с помощью Diff в Linux

Давайте создадим третий файл с именем file3.

Мы заполним этот файл содержимым, аналогичным файлу1.

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

Найти два одинаковых файла с помощью Diff

Найти два одинаковых файла с помощью Diff

Использование дополнительного аргумента команды -s делает этот вывод возможным. Однако реализация его с двумя неидентичными файлами все равно выведет их различия.

 Найти различия между двумя файлами

Найти различия между двумя файлами

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

Альтернативный вид выходных данных команды Diff

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

Сравнить два файла рядом

Сравните два файла рядом

Если вы хотите, чтобы приведенная выше команда подавляла или игнорировала сходство двух файлов, включите параметр --suppress-common-lines.

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

 Сравнить два файла по столбцу

Сравнить два файла по столбцу

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


Дэйв Маккей


Дэйв Маккей
Писатель

Хотите увидеть различия между двумя версиями текстового файла?Тогда diff — это команда, которая вам нужна. В этом руководстве показано, как использовать diff в Linux и macOS простым способом.

Погружение в различия

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

Давайте приступим к анализу двух файлов. Порядок файлов в командной строке определяет, какой файл diff считает «первым файлом», а какой — «вторым файлом». В приведенном ниже примере alpha1 — это первый файл, а alpha2 — второй файл. Оба файла содержат фонетический алфавит, но второй файл, alpha2, подвергся дальнейшему редактированию, так что эти два файла не идентичны.

С помощью этой команды мы можем сравнить файлы. Введите diff , пробел, имя первого файла, пробел, имя второго файла и нажмите Enter.

Вывод команды diff без параметров

Как мы анализируем этот результат? Когда вы знаете, что искать, это не так уж плохо. Каждое различие перечисляется по очереди в одном столбце, и каждое различие помечается. Метка содержит цифры по обе стороны от буквы, например 4c4. Первое число — это номер строки в alpha1, а второе число — это номер строки в alpha2. Буква в середине может быть:

  • c: необходимо изменить строку в первом файле, чтобы она соответствовала строке во втором файле.
  • d: строка в первом файле должна быть удалена, чтобы соответствовать второму файлу.
  • a: В первый файл необходимо добавить дополнительный контент, чтобы он соответствовал второму файлу.

4c4 в нашем примере говорит нам, что четвертая строка alpha1 должна быть изменена, чтобы соответствовать четвертой строке alpha2. Это первое различие между двумя найденными файлами.

Строки, начинающиеся с, относятся к первому файлу, в нашем примере alpha1, а строки, начинающиеся с >, относятся ко второму файлу, alpha2. Строка сообщает нам, что слово Delta является содержимым четвертой строки в alpha1. Строка > Dave говорит нам, что слово Dave является содержимым четвертой строки в alpha2. Подводя итог, нам нужно заменить Delta на Dave в четвертой строке в alpha1, чтобы эта строка совпадала в обоих файлах.

Следующее изменение обозначается 12c12 . Применяя ту же логику, это говорит нам о том, что строка 12 в alpha1 содержит слово Lima, а строка 12 в alpha2 содержит слово Linux.

Третье изменение относится к строке, которая была удалена из alpha2. Метка 21d20 расшифровывается как «строка 21 должна быть удалена из первого файла, чтобы оба файла синхронизировались, начиная со строки 20». Строка показывает нам содержимое строки, которую нужно удалить из alpha1.

Четвертое отличие помечено как 26a26,28 . Это изменение относится к трем дополнительным строкам, добавленным в alpha2. Обратите внимание на 26,28 на этикетке. Двухстрочные числа, разделенные запятой, представляют диапазон номеров строк. В этом примере диапазон составляет от строки 26 до строки 28. Метка интерпретируется как «в строке 26 в первом файле добавить строки с 26 по 28 из второго файла». Нам показаны три строки в alpha2, которые нужно добавить к alpha1. Они содержат слова Quirk, Strange и Charm.

Острые остроты

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

Вывод команды diff с опцией -s

Вы можете использовать параметр -q (brief), чтобы получить столь же краткое утверждение о двух разных файлах.

Вывод команды diff с опцией -q

Одна вещь, на которую следует обратить внимание, это то, что с двумя идентичными файлами параметр -q (краткий) полностью замолкает и вообще ничего не сообщает.

Альтернативный вид

Опция -y (бок о бок) использует другой макет для описания различий файлов. Часто бывает удобно использовать параметр -W (ширина) с видом сбоку, чтобы ограничить количество отображаемых столбцов. Это позволяет избежать уродливых строк с переносом, которые затрудняют чтение вывода.Здесь мы указали diff производить отображение рядом друг с другом и ограничить вывод до 70 столбцов.

Вывод команды diff с параллельным отображением

Первый файл в командной строке, alpha1, показан слева, а вторая строка в командной строке, alpha2, показана справа. Строки из каждого файла отображаются рядом. Рядом с теми строками в alpha2, которые были изменены, удалены или добавлены, есть индикаторные символы.

  • |: строка, которая была изменена во втором файле.
  • : строка, добавленная во второй файл, которой нет в первом файле.

Если вы предпочитаете более компактную сводку различий между файлами, используйте параметр --suppress-common-lines. Это заставляет diff отображать только измененные, добавленные или удаленные строки.

Вывод команды diff с опцией --suppress-common-lines

Добавьте всплеск цвета

Еще одна утилита под названием colordiff добавляет цветовую подсветку в вывод diff. Это значительно упрощает поиск различий между линиями.

Используйте apt-get для установки этого пакета в вашу систему, если вы используете Ubuntu или другой дистрибутив на основе Debian. В других дистрибутивах Linux вместо этого используйте инструмент управления пакетами вашего дистрибутива Linux.

Используйте colordiff так же, как и diff .

Вывод команды colordiff без параметров

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

Вывод команды colordiff с опцией --suppress-common-lines

Предоставление некоторого контекста

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

Первый метод использует параметр -c (скопированный контекст).

Вывод colordiff с опцией -c

Выход diff имеет заголовок. В заголовке перечислены два имени файла и время их модификации. Перед именем первого файла стоят звездочки (*), а перед именем второго файла — тире (-). Звездочки и тире будут использоваться для обозначения того, к какому файлу принадлежат строки в выходных данных.

Линия звездочек с 1,7 в середине указывает на то, что мы смотрим на строки из alpha1. Чтобы быть точным, мы смотрим на строки с первой по седьмую. Слово Delta помечается как измененное. Рядом с ним стоит восклицательный знак ( ! ), и он красный. Перед и после этой строки отображаются три строки неизменного текста, поэтому мы можем видеть контекст этой строки в файле.

Линия тире с 1,7 в середине говорит нам, что мы сейчас смотрим на строки из alpha2. Опять же, мы смотрим на строки с первой по седьмую, при этом слово Дейв в четвертой строке помечено как отличающееся.

Три строки контекста выше и ниже каждого изменения — это значение по умолчанию. Вы можете указать, сколько строк контекста вы хотите предоставить diff. Для этого используйте параметр -C (скопированный контекст) с заглавной «C» и укажите необходимое количество строк:

Вывод colordiff с параметром -C 2

Вторая опция сравнения, которая предлагает контекст, – это опция -u (унифицированный контекст).

Вывод colordiff с опцией -u

Как и раньше, у нас есть заголовок на выходе. Два файла названы, и показано время их модификации. Перед названием alpha1 стоят тире (-), а перед названием alpha2 — знаки плюс (+).Это говорит нам о том, что тире будут использоваться для обозначения alpha1, а знаки плюс будут использоваться для обозначения alpha2. По всему листингу разбросаны строки, начинающиеся со знаков ( @ ). Эти линии отмечают начало каждой разницы. Они также сообщают нам, какие строки отображаются в каждом файле.

Нам показаны три строки до и после строки, отмеченной как отличающаяся, чтобы мы могли видеть контекст измененной строки. В едином представлении линии с разницей отображаются одна над другой. Строке из alpha1 предшествует тире, а строке из alpha2 предшествует знак плюс. Это отображение достигает в восьми строках того, что скопированное контекстное отображение выше заняло пятнадцать.

Как и следовало ожидать, мы можем попросить diff предоставить именно то количество строк единого контекста, которое мы хотели бы видеть. Для этого используйте параметр -U (унифицированный контекст) с заглавной «U» и укажите необходимое количество строк:

Вывод colordiff с параметром -U 2

Игнорирование пробелов и регистра

Давайте проанализируем еще два файла, test4 и test5. В них есть имена шести супергероев.

Вывод colordiff в файлах test4 и test5

Результаты показывают, что diff не находит различий с линиями Black Widow, Spider-Man и Thor. Он отмечает изменения в линиях Капитана Америки, Железного человека и Халка.

Так что же изменилось? Что ж, в test5 Халк пишется со строчной буквы «h», а у Капитана Америки есть дополнительный пробел между «Капитан» и «Америка». Хорошо, это ясно видно, но что не так с линией Ironman? Видимых различий нет. Вот хорошее практическое правило. Если вы его не видите, ответ — пустое пространство. В конце этой строки почти наверняка есть один-два пробела или символ табуляции.

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

  • -i: игнорировать различия в регистре.
  • -Z: игнорировать пробелы в конце.
  • -b: игнорировать изменения количества пробелов.
  • -w: игнорировать все изменения пробелов.

Давайте попросим diff еще раз проверить эти два файла, но на этот раз проигнорировать любые различия.

выход из colordiff игнорировать регистр

Строки со словами «The Hulk» и «The hulk» теперь считаются совпадающими, и для строчной буквы «h» никакие различия не помечаются. Давайте попросим diff также игнорировать пробелы в конце.

Вывод из colordiff игнорирует завершающие пробелы

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

Выход из colordiff игнорирует все пробелы

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

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

< /tbody>
Команды Linux
Файлы tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm
Процессы alias · screen · top · nice · renice · прогресс · strace · systemd · tmux · chsh · история · at · пакетное · бесплатное · которое · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · стена · yes · kill · спать · sudo · su · время · groupadd · usermod · группы · lshw · выключение · перезагрузка · halt · poweroff · passwd · lscpu · crontab · date · bg · fg
Сеть netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · копать · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw
  • › Как применить исправление к файлу (и создать исправления) в Linux
  • › 10 основных команд Linux для начинающих
  • › 37 важных команд Linux, которые вы должны знать
  • › Худшее, что есть в телефонах Samsung, — это программное обеспечение Samsung.
  • › Что такое GrapheneOS и как она делает Android более приватным?
  • ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
  • › Почему прозрачные чехлы для телефонов желтеют?
  • › Что означает XD и как вы его используете?

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

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

Синтаксис:

Допустим, у нас есть два файла с именами a.txt и b.txt, содержащие 5 штатов Индии.

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

  • Номера строк, соответствующие первому файлу,
  • Специальный символ и
  • Номера строк, соответствующие второму файлу.
  • Строки, которым предшествует символ "а", являются строками из второго файла.
  • Следующая строка содержит 2,3c3, что означает, что от строки 2 до строки 3 в первом файле необходимо изменить, чтобы она соответствовала строке номер 3 во втором файле. Затем он сообщает нам эти строки с указанными выше символами.
  • Три дефиса ("—") просто разделяют строки файлов 1 и 2.

В качестве резюме, чтобы сделать оба файла идентичными, сначала добавьте Tamil Nadu в первый файл в самом начале, чтобы он соответствовал строке 1 второго файла, после этого измените строки 2 и 3 первого файла, т.е. < i>Уттар-Прадеш и Калькутта со строкой 3 второго файла, т.е. Андхра-Прадеш. После этого замените строку 5 первого файла, т.е. Джамму и Кашмир, на строку 5 второго файла, т.е. Уттар-Прадеш.

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

Здесь выше вывод 3d2 означает удаление 3-й строки первого файла, т. е. Telangana, чтобы оба файла синхронизировались в строке 2.

Параметры

Система Linux предлагает два разных способа просмотра вывода команды diff, т. е. контекстный режим и унифицированный режим.

<р>1. -c (контекст): чтобы просмотреть различия в контекстном режиме, используйте параметр -c. Давайте попробуем понять это на примере, у нас есть два файла file1.txt и file2.txt:

Первый файл обозначается ***, а второй файл обозначается —.
Строка с *************** — это просто разделитель.

Первые две строки этого вывода показывают нам информацию о файле 1 и файле 2. В нем перечислены имя файла, дата изменения и время изменения каждого из наших файлов, по одному в каждой строке.
В следующей строке есть три звездочки ***, за которыми следует диапазон строк из первого файла (в нашем случае строки с 1 по 4, разделенные запятой). Затем четыре звездочки ****. После этого показывает содержимое первого файла со следующими индикаторами:

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

(a) + : указывает строку во втором файле, которую необходимо добавить в первый файл, чтобы сделать их идентичными.
(b) – : указывает строку в первом файле, которую необходимо удалить, чтобы сделать их идентичными.
Как и в нашем случае, необходимо удалить mv и comm из первого файла и добавить diff и comm< /i> в первый файл, чтобы они оба были идентичны.

После этого следуют три дефиса, за которыми следует диапазон строк из второго файла (в нашем случае строки с 1 по 4, разделенные запятой). Затем четыре черточки —-. Затем он показывает содержимое второго файла.

<р>2. -u (унифицированный): чтобы просмотреть различия в унифицированном режиме, используйте параметр -u. Он похож на контекстный режим, но не отображает лишней информации или показывает информацию в сжатой форме.

Первый файл обозначается знаком —, а второй файл обозначается знаком +++.
Первые две строки этого вывода показывают нам информацию о файле 1 и файле 2. В нем перечислены имя файла, дата модификации и время модификации каждого из наших файлов, по одному в строке.
После этого следующая строка имеет два знака @, за которыми следует диапазон строк из первого файла (в нашем случае строки с 1 по 4, разделенные запятой) с префиксом – и затем пробел, а затем снова строка, за которой следует строка диапазон от второго файла с префиксом + и в конце два со знаком @. Вслед за содержимым файла в выводе сообщается, какая строка остается неизменной и какие строки необходимо добавить или удалить (обозначены символами) в файле 1, чтобы сделать его идентичным файлу 2.

<р>3. -i : по умолчанию эта команда чувствительна к регистру. Чтобы сделать эту команду нечувствительной к регистру, используйте параметр -i с diff.

<р>4. --version : этот параметр используется для отображения версии diff, которая в данный момент работает в вашей системе.

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

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

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

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

Синтаксис команды «diff» указан ниже:

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


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


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

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

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

Есть три ярлыка:

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

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

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

Есть еще один способ просмотреть разницу, используя команду «diff» с параметром «-y»:


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

  • | — Во втором файле другая строка
  • > — во втором файле лишняя строка
  • $ diff -y -W 60 --suppress-common-lines test_file_1.txt test_file_2.txt


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

Если вам трудно расшифровать помеченный метод, есть более простой подход.Использование опции «-q» с командой «diff» дает вам вывод в одну строку. Правда, без дополнительной информации:


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


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


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

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

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


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

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

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

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

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

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

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


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

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

Если вы хотите сравнить файлы, игнорируя регистр символов, используйте флаг "-i":

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


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

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

td>
Опция Описание
-a Эта опция обрабатывает все файлы как текстовые файлы
-B Игнорирует изменения, когда все строки пусты
-E Эта опция игнорирует раскрытие табуляции
-I Игнорирует изменения, в которых совпадают все строки
-s Выдает результат, когда два файла идентичны
-w Игнорирует все пробелы
-Z Игнорирует пробелы в конце строки

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

Еще один способ сравнения двух файлов — использование команды «vimdiff». Для этого у вас должен быть установлен vim:


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


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


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

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


Чтобы сравнить файлы, используйте:


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

Вывод:

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

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

Об авторе

Сэм Ю

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

Читайте также: