diff 功能说明:逐行比较纯文本文件的内容,并输出文件的差异。只能同时比较2个文件。 参数选项: -y 以并列的方式显示文件的异同之处。 -c 使用上下文的格式输出。 -W 在使用-y参数时,指定显示宽度。 -u 使用统一格式输出。 diff 默认的显示格式有如下三种提示: a - add c - change d - delete 其中,以"<"开头的行属于文件1,以">"开头的行属于文件2。 比较两个文本文件的例子 [root@testdb ~]# cat a.log 1 2 3 4 5 6 [root@testdb ~]# cat b.log 4 5 6 7 8 [root@testdb ~]# diff a.log b.log 1,3d0 < 1 < 2 < 3 6a4,5 > 7 > 8 结果说明:1,3d0 删除a.log文件的第1行到第3行,删除b.log文件的第0行,即不删除。 6a4,5 a.log文件的第6行增加下面2行文本,即b.log文件的第4行和和第5行。 以"<"开头的行属于a.log文件,以">"开头的行属于b.log文件。 并排格式输出 [root@testdb ~]# diff -y a.log b.log 1 < 2 < 3 < 4 4 5 5 6 6 > 7 > 8 [root@testdb ~]# [root@testdb ~]# diff -y -W 30 a.log b.log 1 < 2 < 3 < 4 4 5 5 6 6 > 7 > 8 上下输出格式 [root@testdb ~]# diff -c a.log b.log *** a.log 2020-12-16 18:04:19.046069469 +0800 --- b.log 2020-12-16 18:04:33.990048625 +0800 *************** *** 1,6 **** - 1 - 2 - 3 4 5 6 --- 1,5 ---- 4 5 6 + 7 + 8 格式说明:"-"表示 b.log 比a.log少的行数。"+"表示 b.log 比a.log多的行数。 统一格式输出 [root@testdb ~]# diff -u a.log b.log --- a.log 2020-12-16 18:04:19.046069469 +0800 +++ b.log 2020-12-16 18:04:33.990048625 +0800 @@ -1,6 +1,5 @@ -1 -2 -3 4 5 6 +7 +8 比较两个目录 [root@testdb ~]# diff /etc/rc3.d/ /etc/rc6.d/ Only in /etc/rc6.d/: K90network Only in /etc/rc3.d/: S10network