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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



Если статья оказалась для Вас полезной, поделитесь с друзьями, жмите на кнопочки:


Подписывайтесь на новые статьи!


Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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

  • Pavel

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

    • Максим Зайцев От автора

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

  • Василий

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

    • Максим Зайцев От автора

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

      • Pavel

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

        • Максим Зайцев От автора

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

  • Михаил

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

    • Максим Зайцев От автора

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

    • Максим Зайцев От автора

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

  • Андрей

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

    • Максим Зайцев От автора

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

  • Лариса

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

    • Максим Зайцев От автора

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

  • ErikPshat

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

    • Максим Зайцев От автора

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

      • Василий

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

        • ErikPshat

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

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

          • Василий

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

          • ErikPshat

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

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

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

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

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

          • Василий

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

          • nik

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

      • ErikPshat

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

        • Максим Зайцев От автора

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

          • ErikPshat

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

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

          • Максим Зайцев От автора

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

  • Михаил

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

    • Максим Зайцев От автора

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