![Linux diff 命令选项](https://linux22.com/image/517736/Linux%20diff%20%E5%91%BD%E4%BB%A4%E9%80%89%E9%A1%B9.png)
diff cookies.old cookies.new
5c5
< One cup vanilla extract
---
> One teaspoon vanilla extract
7d6
< Six ounces chopped liver
21a22
任何标志/选项都可以帮助我摆脱这个问题5c5,7d6,21a22在输出中?这些字符到底是什么意思?
答案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 将为您提供并排的输出,但使用不同颜色的线条以更加突出差异。