Используя diff, чтобы найти части многих файлов, которые одинаковы? (bizzaro-diff или обратный-diff) - PullRequest
3 голосов
/ 07 февраля 2009

Bizzaro-Diff !!!

Есть ли возможность сделать bizzaro / inverse-diff, который отображает только те части группы, которые совпадают? (Т.е. более чем три файла )

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

Ответы [ 4 ]

1 голос
/ 17 июня 2009

Вы хотите клон детектор. Он обнаруживает похожие фрагменты кода через большие исходные системы. Смотрите наш инструмент ClonedR: http://www.semdesigns.com/Products/Clone/index.html

1 голос
/ 07 февраля 2009

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

1 голос
/ 07 февраля 2009

Вы можете попробовать команду comm (для common ). Он будет сравнивать только 2 файла одновременно, но вы должны быть в состоянии выполнить 3+ с некоторыми умными сценариями.

0 голосов
/ 07 февраля 2009

Это классическая задача .

Если бы мне пришлось быстро и грязно это сделать, я бы, вероятно, сделал что-то вроде diff -U 1000000 (предполагая версию diff, которая его поддерживает), пропустив через sed, чтобы получить общие линии ведущие пространства). Однако вам придется перебрать все файлы.

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

...