Использование diff для поиска одинаковых частей многих файлов?(биззаро-разница, или обратная разница)

StackOverflow https://stackoverflow.com/questions/522221

  •  22-08-2019
  •  | 
  •  

Вопрос

Биззаро-Разница!!!

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

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

Это было полезно?

Решение

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

Другие советы

Вы могли бы попробовать связь команда (для Обычный).Он будет сравнивать только 2 файла одновременно, но вы должны быть в состоянии выполнить более 3 с помощью некоторых умных сценариев.

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

Это такой классическая проблема.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top