4 способа сравнить два файла по содержимому

Друзья, рад вас приветствовать на страницах моего блога. Сегодня хочу рассказать вам о 4 способах сравнения файлов по содержимому. Необходимость найти различия возникает довольно часто. Приходится делать сравнение файлов по типу или размеру. Сравнение файлов в Word и Excel тоже весьма распространённая процедура в офисах и конторах, где постоянно приходится работать с текстовыми документами и таблицами.

Но для веб-мастера или владельца сайта часто бывает необходимо сравнить два файла по содержимому. И речь идёт не о текстовых файлах, хотя и они тоже анализируются так же, а о форматах .html, .css, .php и так далее. Тех файлах, где нужно найти изменения в коде. И порой изменение одного лишь знака может обеспечить уйму трудностей с достижением результата.

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

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

Способ 1. Сравнение файлов в программе Total Commander.

Этой программой я пользуюсь давно. Для работы с файлами, на мой взгляд, это одна из лучших программ. Программа Total Commander платная, но можно в течение 30 дней пользоваться и пробной версией, которая по истечении времени также будет работать, но с предложением о покупке. Скачать пробную версию можно здесь.

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

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

Итак, запускаете Total Commander – в одной из панелей выбираете первый файл для сравнения – во второй панели открываете папку со вторым файлом.

Выбор файлов для сравнения

Далее, открываете пункт меню «Файл»«Сравнить по содержимому».

Сравнить по содержимому

Откроется новое окно, также разделённое на две панели. В самом верху, в каждой панели будет срока для выбора файла. В одной из них первый файл будет уже выбран (но может быть и пустым). Для выбора файла нужно нажать на небольшую кнопочку со стрелочками (>>).

Выбор файла для сравнения

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

Результат сравнения в Total Commander

Для внесения изменений в файл достаточно нажать на кнопку «Редактировать». И можно приступать к внесению изменений. Также здесь будут доступны функции копирования и отката, поиска и изменение кодировки.

Редактирование в Total Commander

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

Способ 2. Сравнение файлов в Notepad++.

Если вам приходилось, хоть когда-либо, редактировать файлы html, css и php. То наверняка вы слышали о бесплатном редакторе кода Notepad++. Скачать программу можно здесь.

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

Но для этого потребуется установить небольшой плагин. Делается всё это непосредственно внутри самого редактора.

Итак, запускаете редактор – переходите в пункт меню «Плагины»«Plugin Manager»«Show Plugin Manager».

Выбор плагина

В новом окне выбираете плагин «Compare» и жмёте кнопку «Install».

Установка плагина

После установки плагина можно приступать к сравнению содержимого файлов. Для этого нужно открыть два файла – перейти в пункт меню «Плагины»«Compare»«Compare (Alt+D)».

Сравнение файлов в Notepad++

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

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

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

Результат сравнения в Notepad++

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

Завершить сравнение файлов можно комбинацией клавиш Ctrl+Alt+D.

Способ 3. Сравнение содержимого двух файлов в программе WinMerge.

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

Установка программы стандартная и не составит труда. Поэтому на этом останавливаться не будем, а сразу перейдём к процессу сравнения двух файлов.

Запустив программу, нужно выбрать файлы для сравнения. Открываете пункт меню «Файл»«Открыть».

Открыть файлы в WinMerge

Далее, выбираете файлы для сравнения. Для этого нажимаете на кнопку «Обзор» и выбираете файл. Выбрав файлы, нажимаете на кнопку «ОК».

Выбор файлов в WinMerge

Результат сравнения представлен в двух панелях, так же как и в других примерах. Только здесь ещё и выделяется именно тот фрагмент кода, который отличается в конкретной строке.

Результат сравнения в WinMerge

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

Способ 4. Сравнение файлов с помощью командной строки Windows.

Этот способ позволяет сравнивать содержимое файлов без сторонних программ. Достаточно воспользоваться стандартным инструментом операционной системы Windows.

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

Для этого открываете «Пуск»«Все программы»«Стандартные»«Командная строка». И вводите вот эту команду:

fc /N путь к первому файлу путь ко второму файлу

выглядит это так:

fc /N C:\Мои документы\file1.txt C:\Мои документы\file2.txt

Готовый результат будет выглядеть так:

Результат сравнения через командную строку

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

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

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

На этом сегодня всё, всем желаю успехов и хорошего настроения и до встречи в новых статьях и видеоуроках!

С уважением, Максим Зайцев.

Понравилась статья? Поделиться с друзьями:
Комментарии: 40
  1. Pavel

    Приветствую!
    Под lUbuntu пользуюсь Meld, и вот думаю, что он мне напоминает. А он оказывается очень похож на WinMerge.
    Последний вариант — жесть, для извращенцев :)

    1. Максим Зайцев (автор)

      Паша, привет. Спасибо за дополнение, мне не приходилось работать с Meld. Согласен, последний способ ну уж на самый крайний случай ;-) Хотя, раньше, в DOS приходилось именно им пользоваться.

  2. Василий

    Полезная информация. Я сам до недавнего времени, вообще вручную искал все отличия. Потом установил плагин в Notepad++, стало намного легче.
    Про WinMerge, в свое время, хотел даже статью написать. Я не догадался ее использовать для сравнения файлов сайта.

    1. Максим Зайцев (автор)

      В ручную искать отличия очень сложно. Особенно если файлы объёмные. Впервые эту фишку, ещё в школе, показал нам учитель информатики. Тогда это было в DOSe. Это как раз тот самый 4 способ. Тогда это было очень круто.
      Сам я сейчас использую первые три способа, в зависимости от компьютера на котором работаю. Просто не на всех компьютерах установлены одинаковые программы.

      1. Pavel

        У WinMerge есть portable версия. Очень удобно. Ношу с собой все самое необходимое ПО на флешке (можно скачать на сайте http://portableapps.com/apps ).

        1. Максим Зайцев (автор)

          Да, действительно очень удобно. Нужно взять на вооружение. Спасибо! :-)

  3. Михаил

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

    1. Максим Зайцев (автор)

      Здравствуйте, Михаил. Конечно, не обязательно файлы в разных панелях выбирать, можно и в окне сравнения файлов выбор делать. Это кому как удобно. Главное — инструмент полезный! ;-)

  4. Nikola

    СПАСИБО!
    Очень полезная штучка!
    Может пригодится!

    1. Максим Зайцев (автор)

      Пожалуйста! Инструменты полезные и всегда найдут своё применение.

  5. Андрей

    Добрый день. А как можно так же быстро сравнить по содержимому фотографии или музыку?

    1. Максим Зайцев (автор)

      Здравствуйте, Андрей. Честно говоря, никогда не приходилось сравнивать графику и музыку по содержимому. Но, в голову приходят лишь Photoshop для графики и Total Commander для сравнения по размеру и дате создания или изменения. Изначально можно выяснить разницу в размере или дате, а уже после просмотреть или прослушать файлы и найти отличия.

  6. Лариса

    Привет, Максим! Вот, сегодня очень понадобилась эта статья, когда сравнивала свой бывший файл functions.php с тем, который вы мне прислали. Анализировала правки. Для сравнения воспользовалась Notepad++.

    1. Максим Зайцев (автор)

      Лариса, привет. Да, это очень полезные инструменты, которые постоянно меня выручают. Так недавно обратился ко мне один владелец сайта с просьбой: «Помочь разобраться почему сайтбар и футер пропали со страниц рубрик». Проверив файлы, исходный и его доработанный выяснилось, что человек допустил ряд мелких ошибок (удалил кавычки, не закрыл блок ДИВ). Устранили недочёты и всё встало на свои места.
      А так глазками найти такие мелочи, особенно если содержимое файла на сотнях строк, найти очень проблематично.

  7. ErikPshat

    Странно, что для сравнения файлов были выбраны 4 извращённых варианта.
    А как-то про то, чем обычно сравнивают 2-3 файла обычные юзеры, почему-то не сказано ни слова.
    В первую очередь ведь должно было прийти на ум — это «Araxis Merge» — сравнение по содержимому и посимвольно.

    1. Максим Зайцев (автор)

      Здравствуйте, ErikPshat. И в чём же извращение данных способов? Araxis Merge — хорошая программа, но её цена всё портит. Да и к тому же всё сравнить файлы по содержимому можно и бесплатными программами.

      1. Василий

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

        1. ErikPshat

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

          Не проще ли сразу сделать сравнение файлов, тут же увидеть количество различий. А уж потом, если так интересно, можно и посчитать хэш )))

          1. Василий

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

          2. ErikPshat

            @Василий
            А если все файлы не совсем одинаковые, как обычно бывает. Ведь не будете же держать один и тот же файл в 10-ти экземплярах, а потом копаться и вычислять хешем, какой же один из них правленный, а какие все остальные идентичные )))

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

            А конкретно по вашему случаю с необходимостью сравнить сразу кучу файлов, то «Araxis Merge» как раз умеет сравнивать различия сразу по трём файлам и даже по папкам с кучей файлов. Например, у меня есть старый проект с исходниками и есть новый проект. Естесственно каждый проект лежит в разных папках с подпапками и подподпапками. Так вот, мы просто берём и сравниваем 2-3 папки и тут же, без всякого хэша, видим все различия в каждой папке, в каждом файле и в каждых подпапках. Причём программа показывает не просто различные строки, а буквально каждый несовпадающий символ в каждой строке.

            А сравнивать хеши — это имхо явный бред сумасшедшего. Такое может прийти в голову только зелёному школьнику, открывшему для себя новое изобретение в виде контрольных сумм. Мне же, как старому хакеру, со стажем в 26 лет за компом, с круглосуточным ковырянием хекс-редактором и дизассемблерами файлов, и по десятки раз ежедневно сравнивая их — никогда не приходило в голову проверять файлы на хэши, только для того, чтобы выяснить, различаются ли они или нет ))) и никогда такой дуростью заниматься не буду.

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

          3. Василий

            Мы не хакеры, круглосуточно занимающиеся сравнением содержимого файлов, поэтому позвольте нам самим решать, чем пользоваться, тем, что нам удобнее и проще, или «самой лучшей программой в мире».
            Охотно верю, что Araxis Merge прекрасно подходит для решения подобных задач. Вот только на официальном сайте о цене программы я не нашел ни слова. Узнал, конечно, но даже для сумасшедшего будет слишком много потратить более 100-200 $ на программу для решения практической задачи, которая возникает довольно нечасто.

          4. nik

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

      2. ErikPshat

        Не вижу разницы между платными и бесплатными программами, вернее сравнивать файлы ничем не тяжелее платными программами, которые превращены в бесплатные. Я вроде уже давал ссылку на страницу автора русифицированной версии: http://4pda.ru/forum/index.php?showtopic=653615
        Да и вообще, в статье, как я понял, рассматривается вопрос сравнения файлов разными способами, но не думаю, что цель статьи ознакомить юзеров исключительно бесплатным софтом и оградить юзеров от информации по платному.
        Тут я считаю, Ваш подход к делу несостоятельным, непродуктивным.

        1. Максим Зайцев (автор)

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

          1. ErikPshat

            Ну да ладно, не буду спорить. Однако считаю ваши доводы не состоятельными. Допустим, если писать обзор графических программ, то стопудово уверен, что без упоминания Фотошопа будет как-то некорректно. И всегда можно нагуглить программу, отученную от жадности ;), тем более, что есть русифицированная версия из коробочки, не требующая ни копеечки. Ну это для тех, кому религия позволяет, отблагодарить автора можно и в другой жизни )))

            Вообщем, я вас оповестил и просве(я)тил. Плохо это или хорошо, решайте сами.

          2. Максим Зайцев (автор)

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

  8. Михаил

    Доброго времени суток! Респект автору за инструкции! Но, на мой взгляд, представленные 4 способа пригодны только для сравнения данных, но не для работы с ними. Так, в Тоталкоммандере сравнил два текстовых файла с последовательностями буквенных символов (написаны в строку без пробелов). Он подсветил отличия. Мне необходимо вырезать подсвеченное/неподсвеченное и объединить. Как это можно осуществить? Заранее благодарю.

    1. Максим Зайцев (автор)

      Михаил, добрый вечер. В том же коммандере перейдите в режим редактирования и делайте, то что вам нужно. Вырезайте и объединяйте. В видео я показываю эти моменты.

  9. Татьяна

    Здравствуйте! пыталась установить плагин compare в notepad++, но он не устанавливается. процесс инсталляции идет, потом просит перезапустить нотпад, но плагина на вкладке «плагины» нет. Нет его и в списке Installed менеджера плагинов. В чем может быть причина?

    1. Максим Зайцев (автор)

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

  10. I.CaR Soft

    Compare от Borland лучше всех. Удобнее и как-то прям приятно и быстро в нём работать.

    1. Максим Зайцев (автор)

      Каждый выбирает удобный для себя инструмент. Мне Notepa++ хватает для моих задач.

      1. kuzen08

        Добрый день всем. Максим написал все правильно. Всякие «умники» могут гигабайтами разные комменты писать, что можно так и можно эдак а человек в двух словах объяснил простой и доступный способ задачи для обыкновенного пользователя. Программист и без Araxis Merge и т.д. знает, что ему делать когда приходится пачками сравнивать. Из-за 2х 3х файлов заморачиваться смысла нет. Простой пользователь на вряд ли знает что такое ХЕШ и как его получить, выбирает наименьший путь сопротивления. И не стоит умничать. Максим написал правильную статью. Респект!

        1. I.CaR Soft

          «Всякие «умники» могут гигабайтами разные комменты писать» — Гляньте на свой комментарий.
          Поговорку помните? — Вор всегда кричит — «Держите вора!».

  11. Владимир

    Спасибо Максим !!!

  12. Вадим

    Спасибо, WinMerge помог! Правда побоялся качать с офсайта т.к. там нет ssl, качал с SourceForge.

  13. Krasnovosti.ru

    Почему в списке нет Beyond Compare?
    Наверное самая шикарная программа для сравнения файлов.
    Полезна для разработчиков.

    1. Максим Зайцев (автор)

      В обзоре были рассмотрены доступные варианты. Дорогие коммерческие решения не брал во внимание.

      1. Валерий

        Уже предполагаю, что сравнением файлов я здесь занимаюсь дольше всех, но расскажу только об одной программке
        (наверное, я уже поставил всесоюзный рекорд по использованию «старья»). Смотрите:

        tcomp.exe, W. Chaplinsky, 1991 (разумеется в DOS-овском исполнении). Size: 31613 (БАЙТ, если кто не понял)

        ЭТО ЧУДО ЕЖЕДНЕВНО МНЕ ПОМОГАЕТ УЖЕ ПОЧТИ 30 ЛЕТ

        В своей работе я постоянно автоматизированно контролирую результаты.
        При этом важен факт появления отличий от предыдущих «эталонов», суть выявленных отличий, их трактовка, фиксация новых эталонов.
        Сравниваемых файлов очень много, поэтому важен режим сравнения.
        У меня это происходит так:
        — для списка сравниваемых файлов автоматически генерируется BAT-файл с вызовом tcomp для каждой пары файлов
        — запускается этот BAT-файл, и он В КОНСОЛЬНОМ РЕЖИМЕ быстренько проверяет все пары файлов.
        Если отличий нет, то и смотреть не на что, тест прошел.
        Если отличия есть, то tcomp переходит в экранный режим (text mode) и красиво показывает отличия на двух файлах.
        Для мой работы именно такой режим меня и устраивает.
        Всякие диалоги по выбору сравниваемых файлов мне совершенно не нужны.

        Однажды пытался я найти новую версию этой программки … увы. И автора (W. Chaplinsky) найти не смог.
        НО ОГРОМНОЕ ЕМУ СПАСИБО за столь удачный для меня инструмент.

        Однако время идет, у этой программки есть недостатки:
        — открывает файлы только с короткими именами (8.3), но для меня это не проблема
        — просто так не запускается под Win10

        Поэтому я сделал свою аналогичную утилитку. И … не запустил в эксплуатацию.

  14. Александр

    Топ-5, он же «№1» — универсальный : в приложении Beyond Compare

Добавить комментарий для Максим Зайцев Отменить ответ