Shell脚本中的常用命令-----diff和patch

Shell脚本中的常用命令-----diff和patch

1.diff命令的用法

diff 参数  对象一  对象二
以后面的对象作为标准,去比较前面的对象相对于后面对象来说有什么不同。
<   		##表示第一个对象的内容
>			##表示第二个对象的内容
a			##表示添加
c			##表示更改
d			##表示删除
常用参数:
-b          ##表示忽略空格
-B          ##表示忽略空行
-i 			##忽略大小写
-c 			##显示文件所有内容并标识不同
-r 			##对比目录时加 -r
-u 			##合并输出

当两个文件中有很多行时,进行比较不同时,为了方便我们可以用

[root@rhel8_node1 mnt]# vimdiff file1 file2
2 files to edit

在这里插入图片描述
可以看出,不同之处会特殊标记出来
在这里插入图片描述

[root@rhel8_node1 mnt]# touch file1 file2       ##在/mnt/目录下建立文件file1,file2
[root@rhel8_node1 mnt]# ls						##显示,文件建立成功
file1  file2
[root@rhel8_node1 mnt]# vim file1				##编辑文件file1内容
[root@rhel8_node1 mnt]# vim file2				##编辑文件file2内容
[root@rhel8_node1 mnt]# cat file1				##查看文件file1内容
hello
westos
[root@rhel8_node1 mnt]# cat file2				##查看文件file2内容
hello
redhat
[root@rhel8_node1 mnt]# diff file1 file2		##比较文件的不同之处,使文件内容一致
2c2												##表示第一个文件第二行的内容要经过更改变成第二个文件的第二行,c表示更改
< westos										##表示第一个文件中的内容westos
---
> redhat										##表示第二个文件中的内容redhat
[root@rhel8_node1 mnt]# diff file2 file1
2c2
< redhat
---
> westos
[root@rhel8_node1 mnt]# vim file1				##修改file1 内容于file2 内容一致
[root@rhel8_node1 mnt]# cat file1
hello
redhat
[root@rhel8_node1 mnt]# diff file1 file2		##再次比较后,发现文件内容一致
[root@rhel8_node1 mnt]# diff file2 file1
[root@rhel8_node1 mnt]# 

注意:比较时,是针对于后面的对象作为参考

测试:
c表示更改

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
a表示添加
在这里插入图片描述
d表示删除
在这里插入图片描述
-b 表示忽略空格
在这里插入图片描述
-B 表示忽略空行
在这里插入图片描述
-c 表示显示文件所有内容并标识不同
在这里插入图片描述
-i 表示忽略大小写
在这里插入图片描述
-r 表示对比目录
在这里插入图片描述
-u 表示合并输出
在这里插入图片描述

2.patch命令的用法

patch 原文件 布丁文件
-b     ##备份原文件

首先安装打补丁的工具
在这里插入图片描述
注意:如果不加-b参数,文件会被直接修改成指定文件内容,原文件内容会被覆盖。
在这里插入图片描述
加了参数-b之后
在这里插入图片描述
可以看到,生成了文件 file1.orig ,这就是原文件,所以切记在打补丁的时候加参数-b

发布了57 篇原创文章 · 获赞 3 · 访问量 7632

猜你喜欢

转载自blog.csdn.net/xrt0211/article/details/105096622