发布:Linux diff Command Explained With Examples

This commit is contained in:
wxy 2013-11-25 15:30:36 +08:00
parent f2fed8a528
commit a0233fd50d

View File

@ -32,16 +32,16 @@
$ diff file1 file2
1d0
< Hi, 2a2 > Hi,
< Hi,
2a2
> Hi,
4,5c4
< I am fine,
< Thank you.
---
> I am fine.
你可以看见diff后面跟了两个文件的名字作为命令行的参数并且它在输出中生成了不同。输出并不容易理解。理由是,这是被计算机使用的而不是为了人类。尽管如此,让我们一步步解码输出:
你可以看见diff后面跟了两个文件的名字作为命令行的参数并且它在输出中生成了差异比较。输出并不容易理解。理由是,这是被计算机使用的而不是为了人类。尽管如此,让我们一步步解码输出
**注意** 在下面的文本中file1和file2将被当作旧文件和新文件。
@ -58,9 +58,7 @@
4,5c4
< I am fine,
< Thank you.
---
> I am fine.
这里4,5c4这一行意味着在旧文件中的4到5行现在已被改变并且需要用新文件中的第4行代替。添加和删除的行分别用'>'和'<'表示。
@ -68,7 +66,7 @@
那么,来总结一下,
- 首先diff命令的第一个参数被视为旧文件而第二个参数被视为新文件。
- 像1d0 2a2, 4,5c4这种表达式可以用语法解码为 **[旧文件的行号或者行的范围][行为][新文件的行号或者行的范围]**。这里的'行为'可以使追加,删除或者改变替换。
- 像1d0、2a2、4,5c4这种表达式可以用语法解码为 **[旧文件的行号或者行的范围][行为][新文件的行号或者行的范围]**。这里的'行为'可以追加,删除或者改变替换。
- '<'代表删除的行,而'>'代表添加的行。
除了文件外diff命令还可以比较两个目录。让我们通过一个例子学习。
@ -93,7 +91,7 @@
你可以看到当diff命令被用来比较这两个目录时很容易就会显示两个文件中缺失的文件。
下面是在命令行下常用的选项:
下面是一些在命令行下常用的选项:
### 1. 用 -i 忽略大小写 ###
@ -109,7 +107,9 @@
$ diff file1 file2
1c1
< HI > hi
< HI
---
> hi
你可以看见diff命令在输出中报告了大小写不同。
@ -151,9 +151,7 @@
$ diff file1 file2
1c1
< Hi, how are you?
---
> Hi, how are you?
因此你可以看到diff命令报告了不同。但是如果你想要忽略这些空格使用 -b 选项。