| Сервер поддерживается Центром Информационных Технологий (095) 932-9212, 932-9213, 939-0783 E-mail: info@citforum.ru

Сервер содержит море(!) аналитической информации | CIT Forum CD-ROM

### DIFF(1)

НАЗВАНИЕ
diff - выявление различий между файлами

СИНТАКСИС

     diff  [-e] [-f] [-b] [-h] файл1 файл2

ОПИСАНИЕ
Команда diff выдает на стандартный вывод те строки файлов, которые нужно изменить, чтобы привести файлы в соответствие друг с другом. Если вместо файла1 или файла2 стоит -, то используется стандартный ввод. Если файл1 (файл2) является каталогом, то используется файл из этого каталога с именем файл2 (файл1). При нормальной работе вывод содержит строки следующего вида:

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

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

За каждой из этих строк следуют затрагиваемые ею строки файла1, отмеченные знаком <, а затем соответствующие строки файла2, отмеченные знаком >.

Допустимые опции:

-b | Проигнорировать пробелы и символы табуляции в конце строк; остальные цепочки пробелов и табуляций считать одинаковыми.
-e | Сгенерировать набор команд a, c и d редактора ed, который может быть использован для воссоздания файла2 из файла1.
-f | Выдать аналогичный набор, но в обратном порядке; для ed этот набор не используется.
-h | Выполнить сравнение быстро, но без гарантий. Команда с этой опцией работоспособна, только если различающиеся фрагменты коротки и четко разделены; однако в таком случае она применима к файлам неограниченной длины. Опции -e и -f несовместимы с -h.

В сочетании с опцией -e приведенная ниже shell-процедура может быть полезной для поддержки нескольких версий файла. При этом необходим только файл-источник ($1) и цепочка наборов команд для ed ($2, $3, ...), преобразующих одну версию в другую и изготовленных посредством diff. "Последняя версия" получается как стандартный вывод процедуры

     (shift; cat $*; echo '1,$p') | ed - $1

За исключением редких случаев diff находит наименьшее достаточное множество отличий в файлах.

ФАЙЛЫ

     /tmp/d?????
     /usr/lib/diffh  Для опции -h.

СМ. ТАКЖЕ
cmp(1), comm(1), ed(1)

КОДЫ ЗАВЕРШЕНИЯ

     0    Различий нет.
     1    Различия есть.
     2    При выполнении команды зафиксированы ошибки.

СЮРПРИЗЫ
Наборы команд, получаемые по опциям -e и -f, не учитывают возможности возникновения строк, состоящих из единственной точки (.).

Comments: info@citmgu.ru Designed by Andrey Novikov Copyright © CIT