The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

diff (8)
  • diff (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  • diff (1) ( FreeBSD man: Команды и прикладные программы пользовательского уровня )
  • diff (1) ( Русские man: Команды и прикладные программы пользовательского уровня )
  • diff (1) ( Linux man: Команды и прикладные программы пользовательского уровня )
  • diff (1) ( POSIX man: Команды и прикладные программы пользовательского уровня )
  • >> diff (8) ( Русские man: Команды системного администрирования )
  • Пользовательские команды

    diff(1)

    НАЗВАНИЕ

    diff - выдача построчных различий между парами текстовых файлов

    СИНТАКСИС

    diff [-bitw] [-c | -e | -f | -h | -n] файл1 файл2
    diff [-bitw] [ -C число ] файл1 файл2
    diff [-bitw] [ -D строка ] файл1 файл2
    diff [-bitw] [ -c | -e | -f | -h | -n] [-l] [-r] [-s] [-S имя] каталог1 каталог2

    ОПИСАНИЕ

    Утилита diff сравнивает содержимое файла1 и файла2, и выдает в стандартный выходной поток список изменений, необходимых для преобразования файла1 в файл2. Этот список должен быть минимальным. Если файлы идентичны, никакие результаты не выдаются.

    Обычный результат содержит строки следующего вида:

    n1 a n3,n4
    n1,n2 d n3
    n1,n2 c n3,n4
    

    где значения n1 и n2 представляют строки файла1, а n3 и n4 представляют строки в файле2. Эти строки напоминают команды ed(1) для преобразования файла1 в файл2. Если поменять местами a и d и прочитать команды в обратном порядке, можно преобразовать файл2 в файл1. Как и в редакторе ed, пары совпадающих номеров строк, когда n1=n2 или n3=n4, сокращаются до одного номера строки.

    После каждой из таких строк идут все затронутые строки первого файла, предваренные символом '<', а затем - все затронутые строки второго файла, предвареные символом '>'.

    ОПЦИИ

    -b
    Игнорировать хвостовые пробелы (символы пробела и табуляции) и считать любые строки из пробелов совпадающими.

    -i
    Игнорировать регистр символов; например, 'A' и 'a' при сравнении будут считаться совпадающими.

    -t
    Заменять символы табуляции пробелами в строках результата. Обычно или при задании опции -c в результаты добавляются символы в начале каждой строки, которые могут нарушить отступы в исходных строках, что затруднит их интерпретацию. Эта опция сохраняет отступы в исходных строках.

    -w
    Игнорировать все пробелы (символы пробела и табуляции) и считать все строки пробелов одинаковыми; например, при установке этой опции строки 'if ( a == b )' и 'if(a==b)' будут считаться совпадающими.

    Следующие опции - взаимоисключающие:

    -c
    Выдавать листинг различий с тремя строками контекста. При указании этой опции формат результата несколько изменяется: результат начинается с идентификации сравниваемых файлов и их дат создания, а затем каждое изменение отделяется строкой из двенадцати звездочек (*). Строки, удаленные из файла1, помечаются минусом (-); строки, добавленные в файл2, помечаются плюсом (+). Измененные строки в обоих файлах помечаются восклицательным знаком (!).

    -C число
    Выдает листинг различий, идентичный выдаваемому опцией -c, но с указанным числом строк контекста.

    -e
    Выдать сценарий, состоящий только из команд a, c и d редактора ed, который позволит пересоздать файл2 по файлу1. В сочетании с опцией -e, следующая командная строка интерпретатора может помочь поддерживать несколько версий файла. Необходим только исходный файл ($1) и цепочка сценариев ed для перехода от версии к версии ($2, $3, ...), построенные с помощью утилиты diff. В стандартный выходной поток будет выдана "последняя версия".
    (shift; cat $*; echo '1,$p') | ed - $1
    
    За исключением редких случаев, diff строит минимально достаточный набор различий между файлами.

    -f
    Выдать аналогичный сценарий с командами в обратном порядке - для редактора ed он не подходит.

    -h
    Выполнить быстрое, но приблизительное сравнение. Эта опция срабатывает только если различия невелики и легко выявляются, но зато сравнивать можно файлы неограниченной длины. Опции -c, -e, -f и -n совместно с -h использовать нельзя. Утилита diff при задании этой опции в каталоги не переходит.

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

    -D строка
    Создает общую версию файла1 и файла2 с директивами препроцессора языка C, так что при компиляции результата без определенной строки будет получено то же самое, что и при компиляции файла1, а если строка определена, - то же самое, что и при компиляции файла2.

    Следующие опции используются при сравнении каталогов:

    -l
    Выдавать результат в "длинном" формате. Перед вызовом diff, каждый файл пропускается через фильтр pr(1) для разбиения на страницы. Другие различия запоминаются и выдаются после всех различий текста в файлах.

    -r
    Применять diff рекурсивно ко всем общим подкаталогам.

    -s
    Выдавать информацию об идентичных файлах; обычно эти файлы в результатах не упоминаются.

    -S имя
    Начинает сравнение каталогов с середины, с файла с указанным именем.

    ОПЕРАНДЫ

    Поддерживаются следующие операнды:

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

    каталог1, каталог2
    Полные имена сравниваемых каталогов.

    Если только один из файлов является каталогом, утилита diff будет применяться к другому файлу и к одноименному (имя которого соответствует последнему компоненту имени файла) с ним файлу в каталоге.

    ИСПОЛЬЗОВАНИЕ

    Описание работы утилиты diff с файлами длиной более 2 Гбайт (231 байт) см. на странице справочного руководства largefile(5).

    ПРИМЕРЫ

    Пример 1: Пример использования команды diff.

    Если dir1 - каталог, содержащий подкаталог x, dir2 - каталог, содержащий подкаталог x, оба каталога, dir1/x и dir2/x содержат файлы date.out, а каталог dir2/x содержит также файл y, команда:

    example% diff -r dir1 dir2
    может выдать результат, аналогичный следующему:
    Common subdirectories: dir1/x and dir2/x Only in dir2/x: y diff -r dir1/x/date.out dir2/x/date.out 1c1 < Mon Jul 2 13:12:16 PDT 1990 --- > Tue Jun 19 21:41:39 PDT 1990

    ПЕРЕМЕННЫЕ СРЕДЫ

    Описание следующих переменных среды, влияющих на работу diff, см. на странице справочного руководства environ(5): LC_CTYPE, LC_MESSAGES, LC_TIME NLSPATH.

    TZ
    Задает локаль, влияющую на часовой пояс, используемый при вычислении временных отметок, которые выдаются при указании опций -C и -c.

    СТАТУС ВЫХОДА

    Команда возвращает следующие статусы выхода:

    0 Различий не найдено.
    1 Различия найдены.
    >1 Произошла ошибка.

    ФАЙЛЫ

    /tmp/d?????
    временные файлы, используемые при сравнении

    /usr/lib/diffh
    выполняемый файл для реализации опции -h

    АТРИБУТЫ

    Описание следующих атрибутов см. на странице справочного руководства attributes(5):

    ТИП АТРИБУТА ЗНАЧЕНИЕ АТРИБУТА
    Доступен в пакете SUNWesu
    CSI Включено

    ССЫЛКИ

    bdiff(1), cmp(1), comm(1), dircmp(1), ed(1), pr(1), sdiff(1), attributes(5), environ(5), largefile(5)

    ПРИМЕЧАНИЯ

    Сценарии редактирования, выдаваемые опциями -e или -f, не позволяют создавать строки, состоящие из одной точки (.).

    Сообщение Missing NEWLINE в конце файла свидетельствует о том, что в последней строке соответствующего файла нет символа новой строки. Если в результате последние строки файлов получаются разными, они помечаются и выдаются, хотя на вид они кажутся одинаковыми.

    Последнее изменение: 20 декабря 1996 года

    Copyleft (no c) - Fuck copyright!, 2003 В. Кравчук, OpenXS Initiative, перевод на русский язык


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру