每天回顾linux命令(diff)

diff命令
diff命令用来比较给定两个文件的不同。以逐行的方式,比较文本的异同处。如果该命令指定进行目录比较,则会比较目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。

语法
diff (选项) (参数) 或者 diff (参数) (选项)

选项
-a 或 –test: diff预设会逐行比较文本文件,默认情况下有-a的效果

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.txt  b.txt
1,2c1,2
< abc
< 123
---
> cdf
> 456
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff -a a.txt b.txt
1,2c1,2
< abc
< 123
---
> cdf
> 456

-b或 –ignore-space-change:不检查空格字符的不同

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff -a a.txt b.txt
1,3c1,3
< abc
< 123
< 123  456
---
> cdf
> 456
> 123 456
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff -b a.txt b.txt
1,2c1,2
< abc
< 123
---
> cdf
> 456

-B或–ignore-blank-lines:不检查空白行

-c:显示全部内容,并标出不同处

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff -c a.txt b.txt
*** a.txt  Wed Oct 25 14:31:18 2017
--- b.txt  Wed Oct 25 14:32:01 2017
***************
*** 1,4 ****
  1
! abc
! 123
! 123  456
--- 1,5 ----
  1
! cdf
! 456
!
! 123 456

-C<行数>或–context<行数>:和执行“-c-<行数>”指令相同

-e或–ed:此参数的输出格式可用于ed的script文件,其实就是只输出一边

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff -e a.txt  b.txt
2,4c
cdf
456

123 456
.
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff -e  b.txt  a.txt
2,5c
abc
123
123  456
.

-f或-forward-ed:输出格式类似ed文件

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff -f  b.txt  a.txt
c2 5
abc
123
123  456
.
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff -f  a.txt b.txt
c2 4
cdf
456

123 456
.

-H或–speed-large-files:比较大文件时,可加快速度。

-i或-ignor-case:不检查大小写的不同

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.txt b.txt
2c2
< abc
---
> ABC
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.txt b.txt  -i
root@3eb7af6247bb:/home/wzm/go/src/testdiff#

-N或-new-file:在比较目录时,若文件A仅出现在某个目录中,会显示:Only in目录,文件A 若使用-N,则diff会将文件A与一个空文件比较

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a b
Only in a: a.txt
Only in b: b.txt
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a b -N
diff -N a/a.txt b/a.txt
1,2d0
< 1
< abc
diff -N a/b.txt b/b.txt
0a1,2
> 1
> ABC

-p:若比较我文件为C语言代码文件,显示差异说着的文件名称

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c  b.c
1,2c1,2
< int Test(int a) {
<    return 0
---
> void Testb(int b) {
>   return 0;
4,5c4
< 123
<
---
> abc
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c  b.c  -p
*** a.c Wed Oct 25 15:15:29 2017
--- b.c Wed Oct 25 15:16:18 2017
***************
*** 1,5 ****
! int Test(int a) {
!    return 0
  }
! 123
!
--- 1,4 ----
! void Testb(int b) {
!   return 0;
  }
! abc

-P:和-N类似,但只有当第二个目录包含第一个目录所没有的文件时,才会将这个文件与空白做比较
-q:只显示有无差异,不显示详细信息

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c  b.c  -q
Files a.c and b.c differ

-r:递归比较子目录中的文件。
-s:如果无发现任何差异,仍然显示信息

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c  b.c
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c  b.c -s
Files a.c and b.c are identical

-t:输出是,将tab字符展开
-T:每行前面加上tab字符以便于对齐

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c  b.c
1c1
<  123
---
>     123
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c  b.c -t
1c1
<         123
---
>                 123
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c  b.c -T
1c1
<     123
---
>       123

-u,-u<列数> : 以合并发方式显示文件的不同

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c b.c -u
--- a.c 2017-10-25 15:28:50.989221240 +0000
+++ b.c 2017-10-25 15:29:06.870858237 +0000
@@ -1,3 +1,3 @@
-  123
-1
-2
+     123
+3
+4
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c  b.c
1,3c1,3
<  123
< 1
< 2
---
>     123
> 3
> 4

-v:显示版本信息
-w:忽略全部空格字符
-W<宽度> : 在使用-y参数是,指定栏宽

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c  b.c -y -W 50
   123        |       123
1           |       3
2           |       4
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c b.c
1,3c1,3
<  123
< 1
< 2
---
>     123
> 3
> 4
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c b.c -y
   123                       |     123
1                           | 3
2                           | 4

-x<文件名或目录>:不比较选项中指定的文件和目录名
-y:以并列的方式显示文件的异同

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c b.c -y
   123                       |     123
1                           | 3
2                           | 4
3                      3

–help:显示帮助信息
–left-column:在使用-y参数时,若两个文件某一行内容相同,则仅在左侧栏位显示该行内容

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c b.c -y
   123                       |     123
1                           | 3
2                           | 4
3                      3
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c b.c -y --left-column
   123                       |     123
1                           | 3
2                           | 4
3                           (

–suppress-common-lines:在使用-y参数时,仅显示不同

root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c b.c -y
   123                       |     123
1                           | 3
2                           | 4
3                      3
root@3eb7af6247bb:/home/wzm/go/src/testdiff# diff a.c b.c -y --suppress-common-lines
   123                       |     123
1                           | 3
2                           | 4

参数
指定要比较的文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值