Похоже, -u
можно принять дополнительный числовой аргумент, но я не совсем понимаю руководство,
Там говорится:
-u, -U NUM, --unified[=NUM]
output NUM (default 3) lines of unified context
Приведите пример, пожалуйста.
Я не смог найти работающий.
решение1
-u сам по себе выводит результаты в«унифицированный» форматчисло просто изменяет количество соседних строк, включенных в качестве контекста.
решение2
Прямо из статьи Википедии diff
:
Унифицированные контекстные diff-файлы были первоначально разработаны Уэйном Дэвисоном в августе 1990 года (в формате unidiff, который появился в 14-м томе comp.sources.misc). Ричард Столлман добавил поддержку унифицированных diff-файлов в утилиту diff проекта GNU месяц спустя, и эта функция дебютировала в GNU diff 1.15, выпущенной в январе 1991 года. С тех пор GNU diff обобщил формат контекста, чтобы разрешить произвольное форматирование diff-файлов.
Формат начинается с того же двухстрочного заголовка, что и контекстный формат, за исключением того, что исходный файл предваряется "---", а новый файл предваряется "+++". После этого идут один или несколько блоков изменений, которые содержат различия строк в файле. Неизмененные контекстные строки предваряются символом пробела, строки добавления предваряются знаком плюс, а строки удаления предваряются знаком минус.
Кусок начинается с информации о диапазоне и сразу же сопровождается добавлениями строк, удалениями строк и любым количеством контекстных строк. Информация о диапазоне окружена двойными знаками и объединяет в одну строку то, что появляется на двух строках в формате контекста (выше). Формат строки информации о диапазоне следующий:
@@ -l,s +l,s @@ optional section heading
Затем во всем файле, где необходимо внести изменения, вы увидите строки вроде этих:
-check this dokument. On
+check this document. On
ПРИМЕЧАНИЕ:Буква «А» -
означает, что элемент удаляется, а буква «А» +
означает, что элемент добавляется.
Команда diff -U
также может принимать дополнительный параметр, число, которое обозначает количество строк соседнего текста вокруг точки, где возникает разница между двумя файлами. Это полезно для получения лучшего контекста того, что на самом деле влечет за собой разница.
Пример
файл1
$ cat file1.txt
The Rain in Spain by
Servants Poor Professor Higgins!
Poor Professor Higgins! Night and day
He slaves away! Oh, poor Professor Higgins!
All day long On his feet; Up and down until he's numb;
Doesn't rest; Doesn't eat;
файл2
$ cat file2.txt
The Rain in Spain by
added extra line here
Servants Poor Professor Higgins!
Poor Professor Higgins! Night and day
He slaves away! Oh, poor Professor Higgins!
All day long On his feat; Up and down untile he's numb;
Doesn't rest; Doesn't eat;
разница
$ diff -U 2 file1.txt file2.txt
--- file1.txt 2013-04-26 09:39:13.496835363 -0400
+++ file2.txt 2013-04-26 09:38:04.838299195 -0400
@@ -1,6 +1,7 @@
The Rain in Spain by
+added extra line here
Servants Poor Professor Higgins!
Poor Professor Higgins! Night and day
He slaves away! Oh, poor Professor Higgins!
-All day long On his feet; Up and down until he's numb;
+All day long On his feat; Up and down untile he's numb;
Doesn't rest; Doesn't eat;
Видетьразница в википедииБольше подробностей.