【linux命令讲解大全】008.文件比较与统计工具:diff3、diffstat 的用法详解

2024-03-02 11:23:46 浏览数 (1)

diff3

比较3个文件不同的地方

补充说明

diff3命令用于比较3个文件,将3个文件的不同的地方显示到标准输出。

语法
代码语言:javascript复制
diff3 [选项] [文件1] [文件2] [文件3]
选项
  • -a:把所有的文件都当做文本文件按照行为单位进行比较,即给定的文件不是文本文件;
  • -A:合并第2个文件和第3个文件之间的不同到第1个文件中,有冲突内容用括号括起来;
  • -B:与选项“-A”功能相同,但是不显示冲突的内容;
  • -e/--ed:生成一个“-ed”脚本,用于将第2个文件和第3个文件之间的不同合并到第1个文件中;
  • --easy-only:除了不显示互相重叠的变化,与选项“-e”的功能相同;
  • -i:为了和system V系统兼容,在“ed”脚本的最后生成“w”和“q”命令。此选项必须和选项“-AeExX3”连用,但是不能和“-m”连用;
  • --initial-tab:在正常格式的行的文本前,输出一个TAB字符而非两个空白字符。此选项将导致在行中TAB字符的对齐方式看上去规范。
参数
  • 文件1:指定要比较的第1个文件;
  • 文件2:指定要比较的第2个文件;
  • 文件3:指定要比较的第3个文件。

diffstat

显示diff命令输出信息的柱状图

补充说明

diffstat命令用来显示diff命令输出信息的柱状图,用以显示diff命令比较两个文件的不同统计信息。用户也可以直接使用|将diff命令所输出的结果直接送给diffstat命令进行统计结果的显示。使用该命令时,若所比较的文件或者子目录不在当前目录下,则应该使用其完整路径。

语法
代码语言:javascript复制
diffstat [选项] [文件]
选项
  • -n<文件名长度>:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
  • -p<文件名长度>:与-n参数相同,但此处的<文件名长度>包括了文件的路径;
  • -w:指定要输出时栏位的宽度;
  • -v:显示版本信息。
参数
  • 文件:指定保存有diff命令的输出信息文件。

示例

将目录"test1"和"test2"下的同名文件"testf.txt"使用diff命令进行比较。然后使用diffstat命令对结果进行统计显示,输入如下命令:

代码语言:javascript复制
diff test1 test2 | diffstat    # 进行比较结果的统计显示

注意:使用这条命令可以非常方便地实现统计显示的功能。

对于查看文件中的内容,用户可以通过cat命令进行查看即可,具体操作如下:

代码语言:javascript复制
cat test1/testf.txt           # 查看test1/testf的内容
abc
def
ghi
jkl
mno
pqr
stu
vws

cat test2/testf.txt          # 查看test2/testf的内容
abc
def
ghi
jkl
mno

从上面的文件内容显示,可以看到两个文件内容的差别。现在来运行刚才的命令,对文件比较的结果进行统计显示,结果如下:

代码语言:javascript复制
testfile | 2  -
1 file changed, 1 insertion( ), 1 deletion(-)

0 人点赞