Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Разница

Как и Прдч программа, Разница используется для обнаружения различий между файлами. Тем не мение, Разница - это гораздо более сложный инструмент, поддерживающий множество форматов вывода и способный одновременно обрабатывать большие коллекции текстовых файлов. Разница часто используется разработчиками программного обеспечения для изучения изменений между различными версиями исходного кода программы и, таким образом, имеет возможность рекурсивно проверять каталоги исходного кода, часто называемые исходные деревья. Одно обычное использование для Разница это создание файлы diff or патчи которые используются такими программами, как заплата (который мы вскоре обсудим), чтобы преобразовать одну версию файла (или файлов) в другую версию.

Если мы используем Разница чтобы посмотреть на наши предыдущие файлы примеров:


[я @ linuxbox ~] $ файл различий1.txt файл2.txt

1d0

<a 4a4

> и

[я @ linuxbox ~] $ файл различий1.txt файл2.txt

1d0

<a 4a4

> и


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


Таблица 20-4: Команды изменения diff


изменить описание

изменить описание

r1ar2 Добавьте строки в позиции r2 во втором файле на позицию

r1 в первом файле.


изображение

r1cr2 Измените (замените) строки в позиции r1 с линиями в позиции r2 во втором файле.


изображение

r1dr2 Удалите строки в первом файле в позиции r1, который появился бы на расстоянии r2 во втором файле


изображение


В этом формате диапазон представляет собой список, состоящий из начальной и конечной строк, разделенных запятыми. Хотя этот формат используется по умолчанию (в основном для соответствия POSIX и обратной совместимости с традиционными версиями Unix Разница), он не так широко используется, как другие дополнительные форматы. Двумя наиболее популярными форматами являются контекстный формат и унифицированный формат.

При просмотре с использованием контекстного формата ( -c option), мы увидим это:


[я @ linuxbox ~] $ diff -c файл1.txt файл2.txt

*** file1.txt 2008-12-23 06: 40: 13.000000000 -0500

--- file2.txt 2008-12-23 06: 40: 34.000000000 -0500

***************

*** 1,4 ****

- abcd

--- 1,4 ----

bcd

+ А

[я @ linuxbox ~] $ diff -c файл1.txt файл2.txt

*** file1.txt 2008-12-23 06: 40: 13.000000000 -0500

--- file2.txt 2008-12-23 06: 40: 34.000000000 -0500

***************

*** 1,4 ****

- abcd

--- 1,4 ----

bcd

+ А


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

*** 1,4 ***

что указывает на строки с 1 по 4 в первом файле. Позже мы видим:

--- 1,4 ---

что указывает на строки с 1 по 4 во втором файле. В группе изменений строки начинаются с одного из четырех индикаторов:


Таблица 20-5: Индикаторы изменения формата контекста diff


Индикатор Значение

Индикатор Значение

blank Строка, показанная для контекста. Это не указывает на разницу между двумя файлами.


изображение

- Строка удалена. Эта строка появится в первом файле, но не во втором файле.


изображение


изображение

+ Добавлена ​​строчка. Эта строка появится во втором файле, но не в первом.


изображение

! Линия изменилась. Отобразятся две версии строки, каждая в своем соответствующем разделе группы изменений.


изображение


Унифицированный формат похож на контекстный, но более лаконичен. Он указывается в -u опции:


[я @ linuxbox ~] $ diff -u файл1.txt файл2.txt

--- file1.txt 2008-12-23 06: 40: 13.000000000 -0500

+++ file2.txt 2008-12-23 06: 40: 34.000000000 -0500

@@ -1,4 +1,4 @@

-abcd

+e

[я @ linuxbox ~] $ diff -u файл1.txt файл2.txt

--- file1.txt 2008-12-23 06: 40: 13.000000000 -0500

+++ file2.txt 2008-12-23 06: 40: 34.000000000 -0500

@@ -1,4 +1,4 @@

-abcd

+e


Наиболее заметным различием между контекстным и унифицированным форматами является устранение повторяющихся строк контекста, что делает результаты унифицированного формата короче, чем результаты контекстного формата. В нашем примере выше мы видим временные метки файлов, подобные меткам контекстного формата, за которыми следует строка @@ -1,4 +1,4 @@. Это указывает на строки в первом файле и строки во втором файле, описанные в группе изменений. После этого идут сами строки с тремя строками контекста по умолчанию. Каждая строка начинается с одного из трех возможных символов:


Таблица 20-6: Индикаторы изменения унифицированного формата diff


Значение символа

Значение символа

пусто Эта строка используется обоими файлами.


изображение

- Эта строка была удалена из первого файла.


изображение

+ Эта строчка была добавлена ​​в первый файл.


изображение


Лучшие облачные вычисления для ОС в OnWorks: