Подскажите, пожалуйста, как я могу сравнить содержимое каждого файла в иерархии двух разных каталогов? Я на платформе MacOS X?

Спасибо.

6 ответов6

3

Если у вас установлены инструменты разработчика, у вас будет filemerge, который может сравнить 2 каталога. Однако, если у вас его нет, установить его для этого было бы довольно сложно.

2

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

diff -rq tantan-s3 tantan-s3-cloudfront | awk '{ print $2 " " $4 }'| xargs -L 1 ksdiff

Команда diff с параметром -q получает список файлов, которые отличаются в следующем формате:

Files tantan-s3/readme.txt and tantan-s3-cloudfront/readme.txt differ
Files tantan-s3/wordpress-s3/admin-options.html and tantan-s3-cloudfront/wordpress-s3/admin-options.html differ
Files tantan-s3/wordpress-s3/class-plugin-public.php and tantan-s3-cloudfront/wordpress-s3/class-plugin-public.php differ
Files tantan-s3/wordpress-s3/class-plugin.php and tantan-s3-cloudfront/wordpress-s3/class-plugin.php differ
Files tantan-s3/wordpress-s3/config-sample.php and tantan-s3-cloudfront/wordpress-s3/config-sample.php differ
Files tantan-s3/wordpress-s3.php and tantan-s3-cloudfront/wordpress-s3.php differ

Команда awk очищает это, чтобы просто иметь имена файлов:

tantan-s3/readme.txt tantan-s3-cloudfront/readme.txt
tantan-s3/wordpress-s3/admin-options.html tantan-s3-cloudfront/wordpress-s3/admin-options.html
tantan-s3/wordpress-s3/class-plugin-public.php tantan-s3-cloudfront/wordpress-s3/class-plugin-public.php
tantan-s3/wordpress-s3/class-plugin.php tantan-s3-cloudfront/wordpress-s3/class-plugin.php
tantan-s3/wordpress-s3/config-sample.php tantan-s3-cloudfront/wordpress-s3/config-sample.php
tantan-s3/wordpress-s3.php tantan-s3-cloudfront/wordpress-s3.php

Команда xargs с параметром -L 1 выполняет Kaleidascope для каждого набора пар файлов.

1

DiffMerge может делать то, что вам нужно:

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

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

0

Beyond Compare 4 beta теперь работает и на OSX. Это хороший инструмент сравнения с графическим интерфейсом, который может сравнивать, синхронизировать, объединять файлы и папки.

http://www.scootersoftware.com/beta.php?zz=beta4_dl

0

Я использую "Beyond Compare", чтобы сделать это, и похоже, что MAC-эквивалент bbedit

0

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

Примером команды для запуска сравнения с использованием diff может быть:

diff -r /my /first /directory /my /second /directory

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

Ссылка:http://www.computerhope.com/unix/udiff.htm

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .