Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - Diff - Алгоритм10 мая 2011Оглавление: 1. Diff 2. Алгоритм 3. Варианты Работа diff основана на нахождении наибольшей общей подпоследовательности. Например, у вас имеется две последовательности элементов: a b c d f g h j q z a b c d e f g i j k r x y z и вы хотите найти наиболее длинную последовательность элементов, которая представлена в обеих последовательностях в одинаковом порядке. Это означает, что вы хотите найти новую последовательность, которая может быть получена из первой последовательности удалением некоторых элементов или из второй последовательности удалением других элементов. В данном случае такой последовательностью будет являться a b c d f g j z После получения наибольшей общей последовательности остаётся только небольшой шаг до получения похожего на diff вывода: e h i k q r x y + - + + - + + + Использованиеdiff вызывается из командной строки с именами двух файлов в качестве аргументов: diff original new. Вывод команды представляет собой изменения, которые нужно произвести в исходном файле original, чтобы получить новый файл new. Если original и new директории, то diff автоматически будет применён к каждому файлу, который существует в обоих директориях. Все примеры в этой статье используют следующие два файла, original и new:
Команда diff original new производит следующий нормальный дифф-вывод: 0a1,6 > This is an important > notice! It should > therefore be located at > the beginning of this > document! > 8,14c14 < compress the size of the < changes. < < This paragraph contains < text that is outdated. < It will be deleted in the < near future. --- > compress anything. 17c17 < check this dokument. On --- > check this document. On 24a25,28 > > This paragraph contains > important new additions > to this document. В этом традиционном формате вывода a означает добавлено, d удалено, с изменено. Перед буквами a, d или c стоят номера строк исходного файла, после них номера строк конечного файла. Каждая строка, которая была добавлена, удалена или изменена, предваряется угловыми скобками. По умолчанию, общие для исходного и конечного файлов номера строк не указываются. Строки, которые перемещены, показываются как добавленные на своём новом месте и удалённые из своего прошлого расположения. Просмотров: 2615
|