有人可以向我解释一下这个 **diff** 意味着什么吗?

有人可以向我解释一下这个 **diff** 意味着什么吗?

我很难阅读这篇文章,有人可以解释它的含义吗?两者之间有什么区别?

$> diff -U 3 user_output_test1 test1.output | cat -e
--- user_output_test1   2018-10-31 22:21:45.000000000 -0700$
+++ test1.output        2018-10-31 22:21:45.000000000 -0700$
@@ -9,8 +9,8 @@$
 '-+2A' '0123456789ABCDEF'=0$
 '+-2A' '0123456789ABCDEF'=0$
 '++2A' '0123456789ABCDEF'=0$
-'2-A' '0123456789ABCDEF'=0$
-'+2-A' '0123456789ABCDEF'=0$
+'2-A' '0123456789ABCDEF'=2$
+'+2-A' '0123456789ABCDEF'=2$
 '2a' '0123456789ABCDEF'=0$
 '' '0123456789ABCDEF'=0$
 '22' '2'=0$

谢谢。

答案1

user_output_test1有两行:

'2-A' '0123456789ABCDEF'=0
'+2-A' '0123456789ABCDEF'=0

与 不同test1.output, who 有这两行:

'2-A' '0123456789ABCDEF'=2
'+2-A' '0123456789ABCDEF'=2

实质性的区别在于=0变成了=2s。

前导-符号表示将从第一个文件中删除的行,而前导+符号表示需要删除的行。添加到第一个文件,以便生成第二个文件。

统一差异-U是创建这种通用diff格式的原因,同时3强化了每个更改周围 3 行的默认上下文。这些“上下文”行有一个前导空格而不是+-

添加cat -e只是添加了尾随$符号。

相关内容