Утилита diff из командной строки

Может ли кто-нибудь порекомендовать хорошую (надеюсь, бесплатную) утилиту diff для командной строки. Мне бы в основном нужно было запустить его из .Net, чтобы создать какой-то текстовый файл с различиями между двумя файлами xml.

Спасибо!


person Alex    schedule 12.02.2009    source источник
comment
Я бы предложил некоторое указание на то, какая платформа, помимо случайной ссылки на .Net во втором предложении вопроса.   -  person David Thornley    schedule 13.02.2009


Ответы (7)


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

person Lieven Keersmaekers    schedule 12.02.2009
comment
если это будет интегрировано в приложение, я не думаю, что что-то вроде Beyond Compare будет хорошим выбором (хотя это отличная графическая программа сравнения). Небольшой инструмент или, что еще лучше, библиотека - это то, что вам нужно. - person rmeador; 12.02.2009
comment
@rmeador, библиотека действительно была бы лучше. Оператор запросил утилиту командной строки. - person Lieven Keersmaekers; 12.02.2009

Ознакомьтесь с MSYS, он дает вам diff и все распространенные GNU утилиты на Windows.

Как сказал кто-то другой, вы также можете получить diff и все такое в Windows, установив Cygwin < / а>.

person Eduard - Gabriel Munteanu    schedule 12.02.2009
comment
наиболее подходящей такой утилитой является diff. Вы также можете получить его через cygwin, что я предпочитаю. - person rmeador; 12.02.2009

Утилиты GNU для Win32:

http://unxutils.sourceforge.net

person tonys    schedule 12.02.2009

Обычный текст diff не всегда хорошо xml.

Вот существующий вопрос SO, который может помочь: XML Diff and Merge

person dmckee --- ex-moderator kitten    schedule 12.02.2009

Что ж, в Windows уже есть один: FC.EXE. Вероятно, это не лучшее, что можно найти, но, возможно, он достаточно хорош для того, для чего он вам нужен.

person Timo    schedule 12.02.2009
comment
Кажется, что FC не работает в Windows 7 - он отказывается распознавать совершенно допустимую папку как таковую. - person Johan; 17.03.2011

WinMerge всегда работал у меня. С другой стороны, если вам нужно что-то легкое и экстремальное, ExamDiff - это только один exe-файл. Однако ни один из них не является командной строкой.

Для этого я бы порекомендовал просто diff в сочетании, например, с vim и некоторыми плагинами, в зависимости от ваших предпочтений. Diff поставляется с unxutils, на который кто-то уже дал ссылку (см. Выше).

person Rook    schedule 12.02.2009
comment
WinMerge предлагает доступ к командной строке - person JohnZaj; 10.07.2013

Я знаю, что это старый поток, но Microsoft XML Diff and Patch Tool хорошо работает для описываемого вами использования:

http://msdn.microsoft.com/en-us/library/aa302294.aspx

Важное отличие состоит в том, что это утилита сравнения XML, а не текстовая утилита. Утилиты сравнения текста сообщат об огромном количестве ложных срабатываний, если узлы или атрибуты расположены в другом порядке.

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

Я использовал его для сравнения большого количества файлов app.config и web.config и нашел его удобным.

person kiprainey    schedule 07.12.2012