Linux diff 命令选项

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

任何标志/选项都可以帮助我摆脱这个问题5c57d621a22在输出中?这些字符到底是什么意思?

答案1

答案2

这些是行号和将一个更改为另一个的操作。“5c5”表示“第五行更改(替换)为第五行”,“7d6”表示“删除第七行”,“21a22”表示“添加(附加)第 22 行”

--context=NUM您可以使用或等选项更改输出格式--unified

以下是更多信息info关于文件的输出格式diff

此命令将仅显示不同的行而不显示行号和修改类型(它还将消除“----”分隔符):

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

答案3

听起来你只是想要一个更用户友好的 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 将为您提供并排的输出,但使用不同颜色的线条以更加突出差异。

答案4

数字用于识别出现差异的文件的偏移量。

检查 diff 手册页或

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

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

相关内容