diff

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

 

posted @ 2018-08-03 22:12  屠魔的少年  阅读(365)  评论(0)    收藏  举报