Назад | Перейти на главную страницу

параметры команды linux diff

diff cookies.old cookies.new
5c5
< One cup vanilla extract
---
> One teaspoon vanilla extract
7d6
< Six ounces chopped liver
21a22

Любые флаги / параметры могут помочь мне избавиться от этого 5c5, 7d6, 21a22 на выходе? Что именно означают эти символы?

Это номера строк и операция по замене одной на другую. «5c5» означает «строка пять изменена (заменена) на строку пять», «7d6» означает «удалить седьмую строку», «21a22» означает «добавить (добавить) строку 22».

Вы можете изменить формат вывода, используя такие параметры, как --context=NUM или --unified.

Вот еще немного информации о форматах вывода из info файл для diff.

Эта команда будет отображать только те строки, которые отличаются, без указания номера строки и типа модификации (она также удалит разделители «----»):

diff cookies.old cookies.new | grep '^[<>]'

Похоже, вам просто нужен более удобный вывод diff. Основная причина того, что diff такой точный, заключается в том, что он используется для создания патчей. Для более удобного вывода я рекомендую:

[kbrandt@alpine: ~/scrap/diff] echo -e 'foo\nbar' > file1
[kbrandt@alpine: ~/scrap/diff] echo -e 'foo\nbaz' > file2
[kbrandt@alpine: ~/scrap/diff] diff -y file1 file2
foo                             foo
bar                               | baz
[kbrandt@alpine: ~/scrap/diff] colordiff -y file1 file2

Colordiff предоставит вам параллельные изображения, но с линиями разного цвета, чтобы больше подчеркнуть различия.

http://www.linuxselfhelp.com/gnu/diffutils/html_chapter/diff_3.html

примечание: «Подробное описание нормального формата»

Числа используются для обозначения смещения файла, где возникает разница.

Проверьте страницу руководства diff или

http://ss64.com/bash/diff.html

http://en.wikipedia.org/wiki/Diff