Как найти различия в двух текстовых файлах. Как сравнить содержимое двух файлов. Сравнение двух файлов в программе Total Commander
Как сравнить два файла? Этот вопрос может возникнуть в том случае, когда необходимо максимально быстро и удобно увидеть различия в содержании двух файлов. Естественно, не хотелось бы устанавливать дополнительные программы, а провести сравнение с помощью привычных, рабочих инструментов.
Существует прекрасная программа для работы с файлами. Называется она Notepad++. Вот в ней то и есть удобная возможность быстро сравнить два файла.
Сравнение двух файлов в программе Notepad++
Сразу хочу сказать, что в программе Notepad++ можно сравнивать многие файлы, и html, и php, и js. А вот вордовские файлы корректно сравнить не получается, не подходит их кодировка для этой программы. Сравнивать эти файлы будет в самом Ворде, это мы рассмотрим ниже.
Открываем те файлы, которые хотим сравнить.
Для начала сравнения, нам надо запустить плагин Campare. Для этого идем во вкладочку Плагины– Campare – Campare.
Сравнение файлов в Notepad
Если этот плагин в вашей версии Notepad++ ещё не установлен, сделать это легко. Идем в Плагины– Plugin Manager – Show Plugin Manager. Там из общего списка плагинов выбираем Campare, ставим галочку напротив и жмём кнопочку Install.
Наши файлы открываются в двух вкладках, в которых удобно и понятно подсвечены все различия в наших файлах. Дальше уже дело техники, большого труда найти нужные места не составит.
Различия в содержимом файлов в Notepad
Для выхода из режима сравнения надо нажать либо горячие клавиши Ctrl + Alt + D, либо вкладкуПлагины – Campare – Clear Results.
Но, не будем останавливаться только на одной программе. Есть у нас ещё, всем известный Total Commander, в нём тоже можно сравнить два файла быстрым и удобным способом.
Сравнение двух файлов в программе Total Commander
Открываем программу Total Commander
Кликаем на нужный файл и с зажатой кнопкой Ctrl кликаем по второму файлу для сравнения. Оба файла выделяются на общем фоне.
Сравнение файлов в Total Commander
Открывается новое окошко, в котором мы видим содержания наших файлов и различия между ними. Они, опять же, удобно и понятно подсвечены.
Различия в файлах в Total Commander
Нажимаем кнопочку Редактировать и вносим необходимые изменения в файлы. Для удобства работы можно изменить шрифт и воспользоваться кнопками Следующее различие, Предыдущее различие, Откат, Кодировка.
После всех изменений жмём на кнопочку закрытия и нам будет предложено сохранить сделанные правки.
Вот и все, опять же, удобно, быстро, понятно.
Ну и в заключении, надо рассмотреть то, как можно сравнивать Вордовские файлы. Там своя кодировка, поэтому, лучше всего, для этого подойдёт программа Word.
Сравнение двух файлов в программе Microsoft Word
Открываем программу Microsoft Word
Находим вкладочку Рецензирование, выбираем её, ищем пункт Сравнить.
Сравнение файлов в Microsoft Word
Открывается новое окно Сравнение версий, где и надо выбрать Исходный документ и Документ для сравнения. Жмём ОК. Можно, при желании посмотреть дополнительные настройки сравнения.
Открывается новый файл, в котором выделены различия и которые, при желании можно сохранить, или исправить на нужные.
Вот такие способы сравнения двух файлов у нас есть. Дополнительные программы не понадобились, всё уже встроено в привычных инструментах. С помощью того же Notepad++ мне удалось за несколько минут найти нужные места для исправлений.
Команда FC позволяет сравнить содержимое двух или нескольких файлов.
Формат командной строки:
FC ] [диск1:][путь1]имя_файла1 [диск2:][путь2]имя_файла2
Или
FC /B [диск1:][путь1]имя_файла1 [диск2:][путь2]имя_файла2
/A - Вывод только первой и последней строк для каждой группы различий.
/B - Сравнение двоичных файлов.
/C - Сравнение без учета регистра символов.
/L - Сравнение файлов в формате ASCII.
/Lbn - Максимальное число несоответствий для заданного числа строк.
/N - Вывод номеров строк при сравнении текстовых файлов ASCII.
/OFF - Не пропускать файлы с установленным атрибутом "Автономный".
/T - Символы табуляции не заменяются эквивалентным числом пробелов.
/U - Сравнение файлов в формате UNICODE.
/W - Пропуск пробелов и символов табуляции при сравнении.
/nnnn - Число последовательных совпадающих строк, которое должно встретиться после группы несовпадающих.
[диск1:][путь1]имя_файла1 - Указывает первый файл или набор файлов для сравнения.
[диск2:][путь2]имя_файла2 - Указывает второй файл или набор файлов для сравнения.
Для получения краткой справки используется параметр /? : FC /?
Если в командной строке не задан параметр /B то сравнение выполняется построчно, с выводом результатов в виде имен файлов и несовпадающих строк:
Сравнение файлов FILE1.TXT и FILE2.TXT
***** FILE1.TXTline
Line1
line2
head
***** FILE2.TXT
Строка1
строка2
head
*****
В приведенном примере не совпало содержимое первых 2-х строк в файлах FILE1.TXT и FILE2.TXT. Кроме не совпавших строк, в результатах сравнения отображается первая совпавшая после них строка (head )
Если выполняется команда сравнения двоичных файлов FC /B , то независимо от формата данных, выполняется побайтное сравнение с выдачей результатов в виде:
Сравнение файлов file1.txt и file2.txt
00000001: 6C 31
00000002: 69 44
Строка 00000001: 6C 31
- означает, что смещение от начала файла равно 00000001 . В файле file1.txt поданному смещению находится байт с шестнадцатеричным значением 6C
, а в файле file2.txt - 31
Примеры использования FC.EXE:
fc /b etalon.exe C:\windows\system32\notepad.exe - сравнить двоичный файл etalon.exe из текущего каталога с файлом C:\windows\system32\notepad.exe
fc /b D:\windows\system32\dllcache\*.exe D:\windows\system32\*.* | more - сравнить группы двоичных файлов с расширением exe из каталога D:\windows\system32\dllcache\ с файлами из каталога D:\windows\system32\ . Благодаря использованию команды FC в цепочке с командой more , выдача результатов на экран выполняется в постраничном режиме.
fc C:\Documents\*.txt D:\documents\*.* > C:\compare.txt - сравнить текстовые файлы в разных каталогах с записью результатов в файл C:\compare.txt.
FC /LB2 C:\Documents\*.txt D:\documents\*.* > C:\compare.txt - как и в предыдущем случае, но в результатах сравнения будут отображаться не более 2-х несовпадений.
Параметр /nnn позволяет управлять продолжением выполнения сравнения файлов. Например, имеется 2 текстовых файла file1.txt и file2.txt, в которых 1-я и 4-я строки различаются, а 2-я и 3-я - совпадают. В зависимости от значения /nnn утилита FC.EXE может либо прекратить дальнейшее сравнение файлов, либо продолжить:
FC /2 file1.txt file2.txt - после первой не совпавшей строки имеются 2 совпавшие (2-я и 3-я строки - одинаковые) - сравнение файлов будет продолжено.
FC /3 file1.txt file2.txt - параметр /3 требует наличия 3- х совпадающих строк после несовпадения, поэтому дальнейшее сравнение файлов будет прекращено.
FC /A /L /C file1.txt file2.txt - выполнить сравнение текстовых файлов в формате ASCII , без учета регистра символов, с отображением только первой и последней строк для каждой группы различий.
В командных файлах, для проверки результата сравнения файлов используется анализ значения переменной ERRORLEVEL.
По результату выполнения операции сравнения, переменная ERRORLEVEL может принимать следующие значения:
0 - файлы совпали.
1 - файлы не совпали
2 - ошибка открытия файла (файл не найден)
Пример командного файла:
@echo off
fc file1.txt file2.txt > nul
if ERRORLEVEL 1 goto Different
echo Файлы совпадают
REM подпрограмма, выполняющаяся при совпадении файлов. . .
exit
:Different
echo Файлы НЕ совпадают
REM подпрограмма, выполняющаяся при различии файлов. . .
Compare – один из самых полезных плагинов . И если у вас возникла необходимость сравнить 2 файла в Notepad++, compare это то, что вам нужно.
Для того, что бы осуществить сравнение файлов в notepad++ проверим, установлен ли плагин. Для этого откроем закладку плагины. Если он не установлен, идем в Менеджер плагинов: Плагины — Менеджер плагинов — Compare — Установить. После установки плагина редактор перезагрузится.
В notepad ++ сравнение файлов осуществляется довольно просто: открываем два файла, которые необходимо сравнить, нажимаем Ctrl+Alt+1 или выполняем действие в меню.
После этого у нас появляются три участка окна: первый файл, второй и Compare NavBar в котором графически отмечаются различия в документах, если таковые имеются. Таким образом мы сравнили два файла редактором Notepad++.
В notepad ++ сравнить два файла оказалось довольно просто, как видите редактор notepad++ осуществляет построчное сравнение файлов с подсветкой строк с различным кодом. Для меня, как и для многих веб-мастеров этот редактор является лучшим.
Вам необходимо сравнить два текстовых документа и найти в них отличия? Тогда WinMerge то, что Вам требуется! Эта программа предложит открыть Вам два документа, которые необходимо сравнить. Сразу же после их открытия в специальной графе она подсветит те фрагменты текста, которые отличаются. Вносите необходимые изменения и сохраняйте документы прямо в программе.
WinMerge является объединенным и дифференцированым Open Source инструментом для Windows. Представленный softwear может сравнить две папки и два файла, определяя и показывая выделением различия, которые легко понять и обработать.
Предлагаемая программа является весьма полезной для определения того, что изменилось между версиями разрабатываемого проекта (например сайта), а затем она позволяет объединить изменения между версиями.
Особенности:
Общие
- Поддержка Microsoft Windows 98/ME/2000/XP/2003/Vista/2008
- Поддержка Windows, Unix и Mac форматов текстовых файлов
- Поддержка юникода
- Интерфейс со вкладками
Сравнение файлов
- Визуального сравнения и слияние текстовых файлов
- Гибкий редактор с подсветкой синтаксиса, номера строк и слов
- Основные различия по линиям
- Панель разницы показывает текущее различие в двух вертикальных панелей
- Расположение панели показывает карту файлов по сравнению
- Перемещенные линии обнаружения
Сравнение папок
- Регулярные выражения, фильтры на основе файлов позволят исключить и в том числе пунктов
- Быстрое сравнение, используя размеры файла и дату
- Сравнивает одну папку или включает в себя все подпапки
- Можно показать папку сравнить результаты в виде дерева стиле зрения
Управление версиями
- Создает файлы исправлений (нормальный, контекстно-и единой форматы)
- Подсказки цветом различия файлов
- Интеграция Visual SourceSafe и Rational ClearCase
Другое
- Shell интеграция (поддерживает 64-разрядные версии Windows)
- поддерживает использование архивных файлов - 7-Zip
- Поддержка плагинов
- Локализуемый интерфейс
Бесплатные решения
Синхронизация данных требует от программистов, системных администраторов и времени, и соответствующих навыков. Однако не менее важен правильно подобранный инструментарий. Контроль версий, работа с проектами, резервное копирование, слияние и визуальное сравнение файлов — далеко не полный список задач, так или иначе связанных с синхронизацией.
В путеводитель вошли 10 программ, которые можно назвать во многом универсальными: они не привязаны к определенному сервису или приложению, позволяют выполнять вышеназванные (и менее специализированные) задачи не только через графический интерфейс, но и в режиме командной строки.
Критерии сравнения выглядят следующим образом:
- Интерфейс: поддержка режимов отображения, сохранение сессий, возможности настройки панели инструментов, колонок
- Функциональность текстового редактора, работа с исходным кодом
- Методы слияния и синхронизации, возможность трехстороннего сравнения
- Экспорт отчетов, создание патчей (diff)
- Дополнительные функции: интеграция со сторонними приложениями, поддержка расширений, протоколов и др.
SmartSynchronize
SmartSynchronize — кроссплатформенная программа для сравнения данных, структуры директорий и их содержимого. Фактически, программа бесплатна для некоммерческого использования, тем не менее, однопользовательская лицензия стоит 39 USD.
Режимы сравнения представлены в приветственном окне программы. Помимо диалога выбора файлов, здесь возможен просмотр истории и выбор сохраненного профиля. Также в настройках (Preferences) настраиваются фильтры: файловые — для отсеивания файлов по названию и расширению, и фильтры директорий — позволяют составить список исключений.
Для сравнения файлов используется двухпанельный режим side-by-side с синхронной прокруткой содержимого обеих панелей. Условных обозначений в SmartSynchronize немного, но, благодаря соединительным линиям (linking lines), операции сравнения и слияния очень интуитивны. SmartSynchronize указывает, куда и в каком направлении будет добавлен участок из одного файла в другой. Вставка текста производится одним кликом, позволяя обойтись без контекстного меню.
Кодировку и синтаксис документа можно определить вручную, предусмотрена подсветка синтаксиса для многих языков программирования и разметки, нумерация строк и другие редакторские функции, присущие интегрированным средам разработки IDE.
В целом, SmartSynchronize гибко настраивается, но все настройки распределены по разным разделам меню, что требует некоторого привыкания. Не хватает режимов отображения, настроек панели инструментов.
В режиме сравнения директорий выводится список файлов и статус для каждого из них, в нижней части окна доступен предосмотр. Метод сравнения — по содержимому или только по размеру и времени — определяется в настройках Edit → Preferences. Количество информационных колонок (тип файла, дата) нельзя увеличить, хотя отключить имеющиеся можно.
В SmartSynchronize реализовано как одностороннее объединение данных с левой или правой сторонами, так и обычная синхронизация. Конфигурацию можно сохранить для последующей загрузки, сделав снимок файловой структуры. Как поясняют разработчики, программа не распознает атрибуты файлов, поэтому использовать ее в качестве утилиты для резервирования нет смысла. Работа с архивами также не предусмотрена, равно как и с удаленными каталогами.
Помимо вышеупомянутых, имеется дополнительный, трехсторонний метод слияния — 3-Way-Merge, который позволяет объединить различия между несколькими версиями файлов, причем каждый из трех документов можно редактировать независимо друг от друга.
Функции сравнения, несомненно, востребованы программистами при контроле версий. Поэтому в заключение стоит сослаться на альтернативное решение этой же компании — . Программа представляет собой CVS-клиент с интегрированным инструментарием SmartSynchronize.
Резюме . SmartSynchronize предлагает неплохой инструментарий для работы с файлами и директориями, местами не поддающийся настройке и не выходящий за рамки базовых возможностей.
[+] Трехстороннее слияние
[+] Удобный текстовый редактор
[−] Отсутствие документации
[−] Невозможность синхронизации удаленных каталогов и архивов
WinMerge
WinMerge — программа для сравнения и объединения файлов и каталогов в ОС Windows. Ее можно использовать как отдельный инструмент либо в связке с проектами. В WinMerge встроен текстовый редактор с поддержкой языков программирования, подсветкой и нумерацией строк.
Имеется два режима работы с данными, объединенных в диалог выбора файлов и папок. При сравнении доступны фильтры двух типов: фильтры файлов и строковые. Это позволяет использовать различные надстройки и оперировать регулярными выражениями, отсеивая необходимые типы данных при сравнении.
В режиме сравнения файлов в окне отображаются оба файла, в левой и правой части. Для удобной навигации по содержимому предусмотрена карта («Местоположения»). Строки, которые имеют различия, отмечены цветом, также с ними можно ознакомиться в панели «Отличия». Основные операции слияния доступны в разделе «Объединение».
Отдельного внимания заслуживает функциональность текстового редактора. Внешний вид поддается модификации. Помимо подсветки синтаксиса и нумерации строк, предусмотрена работа со скриптами, а расширение функциональности возможно за счет дополнений. Дополнения относятся к распаковщику, представлению и редактору скриптов.
При сравнении каталогов результаты выводятся табулированным списком. В нем содержатся сведения о названии файла (каталога), его расположении, результат сравнения, дата, расширение и другая информация. Настроить отображение можно с помощью колонок. При необходимости можно активировать рекурсивный режим или переключиться в представление в виде дерева для удобной навигации.
WinMerge позволяет выполнять одни и те же задачи разными способами — в том числе, с помощью перетаскивания или через контекстное меню Проводника. Можно создавать проекты для быстрого доступа к данным и настройкам. WinMerge работает в режиме командной строки, также программу можно использовать в связке с системами контроля версий (TortoiseSVN, Visual Studio, Rational ClearCase и т. п.).
Резюме . WinMerge — программа, в первую очередь, с уклоном на работу с проектами. Интеграция с SVN, функциональный редактор, фильтры и расширения — все это отлично дополняет базовые возможности при сравнении данных.
[+] Поддержка расширений
[+] Функциональный редактор
[+] Интеграция со сторонними приложениями
[−] Нет трехстороннего сравнения
Meld
Meld — кроссплатформенная программа (OS X, Linux, Windows) для синхронизации файлов и директорий. С ее помощью осуществляется как двух-, так и трехстороннее сравнение. Прежде всего, инструментарий Meld будет полезен разработчикам, так как возможна интеграция с системами управления версиями: Git, Bazaar, Mercurial, Subversion и прочими.
Несмотря на поддержку нескольких платформ, приложение далеко не стабильно функционирует в Windows. Скажем, вкладки и окна не всегда открываются и закрываются корректно. Возможно, проблемы связаны с библиотекой PyGTK, входящей в инсталлятор. Запустить программу получилось не сразу и только от имени администратора. Ошибки возникают постоянно, в подтверждение — .
В процессе сравнения файлов можно задействовать текстовый фильтр или поиск (поддерживается синтаксис regex). Предусмотрены подсветка синтаксиса (используется библиотека ), нумерация строк, учет пробелов и другие опции, которые нужно активировать через настройки, так как по умолчанию они отключены. Вставки, изменения и конфликты в документе подсвечиваются, возможна быстрая навигация по списку изменений и экспорт в формате diff. Связь между файлами легко отследить с помощью соединительных линий и одним кликом произвести слияние нужных участков.
Сканирование файлов директорий работает очень медленно. Это связано с тем, что сравнение осуществляется по содержимому, а не по размеру и временно́й отметке. Проблема решается установкой флажка напротив соответствующей опции в настройках. Набор доступных колонок весьма ограничен: размер, дата модификации и разрешения. Хотя и можно воспользоваться файловым фильтром, просмотр длинного списка файлов все равно превращается в рутинный процесс: нельзя мгновенно остановить сканирование, свернуть дерево файлов, быстро переместиться к нужным элементам.
Разработчикам будет интересен третий режим работы приложения — Version Control View. Meld поддерживает интерфейс командной строки, поэтому предусмотрена интеграция со средами Git, Bazaar, Mercurial, Subversion и многим другими.
Резюме . Программа Meld зарекомендовала себя с хорошей стороны в среде Linux, чего нельзя сказать о функционировании в Windows. Нестабильная работа и неудобный интерфейс, отсутствие сессий, недостаточная гибкость настройки... С другой стороны, инструментарий программы неплох, а качественная адаптация Meld для Windows, возможно, лишь вопрос времени.
[+] Трехстороннее сравнение
[+] Поддержка систем контроля версий
[−] Медленная и нестабильная работа в Windows
[−] Неудобный и неинформативный интерфейс
Diffuse
Diffuse —кроссплатформенный продукт для ОС Windows, OS X, Linux и BSD, по интерфейсу напоминающий Meld (в основе — библиотека PyGTK), но имеющий функциональные отличия. Заявлена интеграция с Bazaar, CVS, Darcs, Git, Mercurial, Monotone, RCS, Subversion и другими средами.
Продолжая сравнение с Meld: Diffuse характеризуется стабильностью, здесь нет внезапных зависаний. Доступна подробная документация, интерфейс переведен на русский язык. Однако сравнение директорий не входит в инструментарий, в программу заложены только функции сравнения файлов и их редактирования. В Diffuse можно обнаружить несколько режимов слияния: — двух-, трех- и многостороннее. Таким образом, источников сравнения может быть сколько угодно, вопрос лишь в быстродействии и удобстве. Касательно второго аспекта можно лишь сказать, что сессий здесь нет — соответственно, работа с большими проектами в Diffuse под вопросом.
Различия отмечаются цветом, сводка (Comparison Summary) доступна возле полосы прокрутки, для навигации по списку изменений предназначены кнопки на панели управления. Нумерация строк и подсветка синтаксиса с возможностью ручного переключения включены по умолчанию. В отличие от других подобных редакторов, в Diffuse нельзя сразу выделить произвольный участок текста, для этого необходимо дважды кликнуть по содержимому. В ином случае можно выделять текст и производить другие действия только построчно.
Очевидно, что в Diffuse перелинковки различий между файлами нет, поэтому слияние строк осуществляется менее интуитивным методом. Все доступные команды собраны в разделе «Слияние», куда нужно обращаться каждый раз за неимением команд в контекстном меню. В SmartSynchronize или других упомянутых решениях многие операции производятся в один клик.
Работа с системами управления версиями возможна посредством командной строки, перечень команд с описанием изложен в .
Резюме . Функциональность такого рода востребована при слиянии нескольких текстовых документов. Программа лишена недостатков, присущих ближайшему аналогу Diffuse — Meld. Но, к сожалению, сравнение директорий и отчетность остались за бортом.
[+] Удобная работа со строками
[+] Интеграция с CVS
[+] Многооконное слияние
[−] Отсутствие сессий
[−] Маркировка изменений не интуитивна
Perforce P4 Merge
P4Merge нечасто упоминается среди других бесплатных продуктов (например, по сравнению с WinMerge). К тому же отыскать эту программу среди других компонентов комплекса Perforce непросто. Perforce — это коммерческая кроссплатформенная система управления версиями, обладающая широкой сферой применения, не в последнюю очередь за счет плагинов и интеграции с различными продуктами (IntelliJ IDEA, Autodesk 3D Studio Max, Maya, Adobe Photoshop, Microsoft Office, Eclipse, emacs и др.). Впрочем, P4 Merge может работать автономно от сервера Perforce, достаточно скачать программу с сайта разработчика для ее бесплатного использования.
Основные операции — это сравнение файлов (Diff) и слияние (Merge). Редактор документов предельно прост: есть нумерация, но нет подсветки синтаксиса. Редактировать файлы в двух панелях «на лету» нельзя, нужно выбрать одну из панелей, включить режим редактирования и затем сохранить изменения. Различия маркируются, для перехода между ними предназначены кнопки навигации. Ориентироваться по изменениям проще всего с помощью соединительных линий. В целом, интерфейс P4 Merge недостаточно удобен: в нем нет сводки по различиям, статистика по изменениям представлена суммарной цифрой, без детализации, для просмотра изменений нужно использовать ручное обновление.
Перечисляя другие особенности программы, стоит упомянуть сравнение изображений. В данном режиме обнаружились две полезные функции: подсветка различий и слияние двух файлов в один. При этом непонятно, почему меню редактора содержит невостребованные команды, такие как смена кодировки, методы сравнения и прочие, которые относятся к сравнению текстовых файлов, но никак не изображений.
Резюме . Конечно, в P4 Merge множество функциональных ограничений, особенно если сравнивать с платными продуктами. Приложение можно рассматривать сугубо как дополнение к серверу Perforce. Возможно, в поисках нужного инструментария следует обратить внимание и на другие компоненты, доступные на сайте разработчика.
[+] Диаграмма слияния в режиме Merge
[−] Слабая функциональность
[−] Невозможность редактирования на лету
[−] Отсутствие команд слияния