查看原文
其他

每天学一个 Linux 命令(36):diff

点击关注 👉 民工哥技术之路 2021-12-16

点击上方“民工哥技术之路”,选择“设为星标”

回复“1024”获取独家整理的学习资料!

昨日推荐:每天学一个 Linux 命令(35):dos2unix

命令简介

diff 命令用于查找、分析两个文件中不同的行,并打印输出在屏幕上。

diff 命令是以逐行的方式,比较文本文件的不同之处。如果是对指定的目录进行比较,就是比较该指定目录下的同名文件,不会对该目录的子目录下的文件进行比较操作。

diff 命令最基础的用途就是用来比较指定的两个文件的不同。

语法格式

diff [选项] [文件]
diff [OPTION] [FILE]

选项说明

-<行数>  #指定要显示的行数,必须与-c或-u参数一并使用
-a  #逐行比较文件
-b  #不对空格进行比较
-B  #不对空行进行比较
-c  #显示全部内容,并标出不同之处
-C<行数>  #与执行“-c-<行数>”指令相同
-d  #以小的单位来做比较
-H  #加速比较大文件
-n  #将比较结果以RCS的格式显示
-q  #只需显示有无差异,不需要显示其它信息
-r  #对子目录的文件进行比较
-s  #如果两个文件没有差异,也给出相关的信息
-S  #比较两个目录时,从指定的文件开始执行比较动作
-u  #以合并的方式来显示文件内容的不同
-v  #显示版本信息
-w  #忽略所有空格字符
-y  #以并列的方式显示两个文件的差异之处
--help  #显示帮助

应用举例

比较两个文件的不同之处

[root@centos7 testdir]# diff mingongge1.txt mingongge2.txt
1,8c1,4
< 1111 11 111111 1 111 1 1 11
< 22222222222 222 2222 22 2 2 2
< 33333333333 333333 3333 333 33
< 444444444444 444 444444444
< 1
< 2
< 3
< 4
---
> head1
> head2
> head3
> head4

#a表示添加,c表示更改,d表示删除 
#以<开头的行是第一个文件中的行
#以>开头的行是第二个文件中的行
[root@centos7 testdir]# diff -c mingongge1.txt mingongge2.txt
*** mingongge1.txt 2021-01-16 09:55:49.489792550 -0500
--- mingongge2.txt 2021-01-16 03:36:24.645284332 -0500
***************
*** 1,8 ****
! 1111 11 111111 1 111 1 1 11
! 22222222222 222 2222 22 2 2 2
! 33333333333 333333 3333 333 33
! 444444444444 444 444444444
! 1
! 2
! 3
! 4
--- 1,4 ----
! head1
! head2
! head3
! head4

diff 比对字符含义

#表示此行是一个或多个需要更改的行的一部分
#表示第二个文件中需要添加到第一个文件中的一行
#表示第一个文件中需要删除的一行
[root@centos7 testdir]# diff -c cuttest.txt cest.txt
*** cuttest.txt 2021-01-16 12:12:15.844549487 -0500
--- cest.txt 2021-01-16 12:15:08.775042428 -0500
***************
*** 1,6 ****
--- 1,7 ----
  aaaaabbbbbbbb
  cccccccccccccccccccc
  ddddddddddd
+ 1111111111111111111111111111111111111111 
  fffffffffffffffffff
  ggggggggggggggggg
  wwwwwwwwwwwwwwww
#合并的方式来进行比较
[root@centos7 testdir]# diff -u cuttest.txt cest.txt
--- cuttest.txt 2021-01-16 12:12:15.844549487 -0500
+++ cest.txt 2021-01-16 12:15:08.775042428 -0500
@@ -1,6 +1,7 @@
 aaaaabbbbbbbb
 cccccccccccccccccccc
 ddddddddddd
+1111111111111111111111111111111111111111 
 fffffffffffffffffff
 ggggggggggggggggg
 wwwwwwwwwwwwwwww

每天学一个 Linux 命令(33):uniq

每天学一个 Linux 命令(34):wc

推荐阅读 点击标题可跳转

一个比 Nginx 功能更强大的 Web 服务器

Bash 脚本进阶,经典用法及其案例

全球当下最厉害的 14 位程序员,说没听过简直离谱~

别瞎学了,这几门语言要被淘汰了!

Kubernetes生产环境最佳实践

收藏!17 张程序员专属壁纸(使用频率很高)

只知道HDFS和GFS?你其实并不懂分布式文件系统

CentOS搭建VPN服务,一次性成功,收藏了

高性能 Nginx HTTPS 调优!为 HTTPS 提速 30%

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存