注意,comm 命令和 join、uniq 命令一样,只能用于已经排过序的数据。
(1)命令格式
comm [参数] 文件 1 文件 2
(2)常用参数
参数描述
-1不输出文件 1 特有的行
-2不输出文件 2 特有的行
-3不输出两个文件共有的行
(3)常用范例
例一:比较 file1.txt 和 file2.txt 两个文件的内容,可以使用如下命令:
comm ??file1.txt ??file2.txt
例二:比较 file1.txt 和 file2.txt 两个文件的内容,只显示两个文件共有的内容,可以使用如下命令:
comm ??-12 file1.txt ??file2.txt
20 diff 命令
类似 comm 命令,diff 命令被用来监测文件之间的差异。然而,diff 是一款更加复杂的工具,它支持许多输出格式,并且一次能处理许多文本文件。软件开发员经常使用 diff 程序来检查不同程序源码版本之间的更改,
diff 能够递归地检查源码目录,经常称之为源码树。diff 程序的一个常见用例是创建 diff 文件或者补丁,它会被其它程序使用,例如 patch 程序(我们后面会讲到),来把文件从一个版本转换为另一个版本。
diff 在命令行中打印每一个行的改动,并且 diff 是 svn、cvs、git 等版本控制工具不可或缺的一部分。
diff 命令是 differential 的缩写。
(1)命令格式
diff [参数] 文件
(2)常用参数
参数描述
-c上下文模式,显示全部内文,并标出不同之处
-u统一模式,以合并的方式来显示文件内容的不同
-a只会逐行比较文本文件
-N在比较目录时,若文件 A 仅出现在某个目录中,预设会显示:Only in 目录。 若使用-N 参数,则 diff 会将文件 A 与一个空白的文件比较
-r递归比较目录下的文件
(3)常用范例
例一:显示 file1.txt 和 file2.txt 两个文件的差异,可以使用如下命令:
diff ??file1.txt ??file2.txt
上面结果显示中的“1d0”表示 file1.txt 文件比 file2.txt 文件多了第一行,“4c3,4”表示 file1.txt 文件的第四行和 file2.txt 文件的第三、四行不同。
diff 的 normal 显示格式有三种提示:
a - add
c - change
d - delete
例二:从上面例一的显示结果可以知道,file1.txt 和 file2.txt 两个文件的差异不易直观看出,可以使用上下文模式显示,可以使用如下命令:
diff ??-c file1.txt ??file2.txt
这个输出结果以两个文件名和它们的时间戳开头。第一个文件用星号做标记,第二个文件用短横线做标记。纵观列表的其它部分,这些标记将象征它们各自代表的文件。
*** 1,4 *** 表示第一个文件中第一行到第四行的文本行。
--- 1,4 --- 表示第二个文件中第一行到第四行的文本行。
三种特殊字符:
+ 添加行,这一行将会出现在第二个文件内,而不是第一个文件内
- 删除行,这一行将会出现在第一个文件中,而不是第二个文件内
! 更改行,将会显示某个文本行的两个版本,每个版本会出现在更改组的各自部分
这些特殊字符很容易混淆,实际上记住一点就行:所有操作目的是将第一个文件变成第二个文件。
例三:查看 file1.txt 和 file2.txt 两个文件的差异,使用统一模式显示,可以使用如下命令:
diff ??-u file1.txt ??file2.txt
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-69506-7.html
现在的情况已经完全不同
把南海海空防御的耳朵和眼睛搞的周密