linux之文本比较工具
文本比较工具常见的有:
diff 以行为单位,常用在ASCII纯文本文件的比较上,常用于同一文件(软件)新旧版本之间的差异比较上
cmp 比较两个文件,以字节为单位,使用较少
这里主要介绍一下diff的用法和后续的patch 命令
[root @localhost ~]#mkdir -p /tmp/vitest #创建目录
[root @localhost ~]#cd /tmp/vitest
[root @localhost vitest]#cp /etc/passwd passwd.old
[root @localhost vitest]#cat /etc/passwd | sed -e '4d' -e '6c no six line' > passwd.new
注意:sed 后面接超过两个以上的动作时,每一个动作前都要加上-e
现在来比较一下两个文件的区别,如何使用 diff
[root @localhost ~]#diff [-bBi] from-file to-file
参数解析:
-b 忽略一行当中有多个空白的差异,如 l Love 与 I Love的差异
-B 忽略空白行的区别
-i 忽略大小写的差异
from-file 作为欲比较的文件,to-file作为基准文件,from-file额to-file可以与 - 替换,表示stanard input之意
现在来比较 passwd.old 和 passwd.new 的差异
[root @localhost vitest]#diff passwd.old passwd.new
解析:依次是,左边第4行被删除,基准是右边的第3行,注意这里的<表示左边的意思
左边第6行被替换成右边的第5行
右边 “>”第5行内容
新建的passwd.old和passwd.new之间是两个不同的版本,如果要软件升级怎么办?就是将旧的文件升级为新的文件,可以先比较新旧版本,再将区别文件制作成不定文件,再由补丁文件更新旧文件
[root @localhost vitest]#diff -Naur passwd.old passwd.new > passwd.patch
[root @localhost vitest]#cat passwd.patch
以行为单位,找到不一样的地方,新文件看到-会删除,看到+会增加。那如何将旧文件更新为新的内容呢,就是讲passwd.old文件更新为passwd.new文件
[root @localhost vitest]#patch -pN < patch.file #更新
[root @localhost vitest]#patch -R -pN < patch.file #还原
参数解析:
-p 后面的N表示取消第几层目录的意思
-R 表示还原,将新的文件还原成旧的文件
现在,将刚才制作的patch file用来更新就版本
[root @localhost vitest]#patch -p0 < passwd.patch
[root @localhost vitest]#ll passwd*
版本回退到原来的旧版本呢
关于这里为什么是 -p0,因为我们比较新旧版本的数据是在同一个目录下,因此不需要减去目录了
linux之文本比较工具相关推荐
- linux 那些文本工具,linux之文本比较工具
文本比较工具常见的有: diff 以行为单位,常用在ASCII纯文本文件的比较上,常用于同一文件(软件)新旧版本之间的差异比较上 cmp 比较两个文件,以字节为单位,使用较少 这里主要介绍一下diff ...
- 10款最佳的Linux文件比较工具
https://www.cnblogs.com/logsharing/p/7986825.html https://www.scootersoftware.com/download.php 1前言 程 ...
- gnome硬盘分析_三款基于GUI和终端的实用Linux磁盘扫描工具
[51CTO.com快译]扫描计算机硬盘主要出于两个原因:一个原因是分析硬盘,找出文件系统的不一致或错误.引起这些问题的可能因素包括:持续的系统崩溃,关键的系统软件关闭不当,更主要的是破坏性程序(比如 ...
- 【linux】Valgrind工具集详解(八):Memcheck命令行参数详解
[linux]Valgrind工具集详解(五):命令行详解中不够全,在此专门针对Memcheck工具中的命令行参数做一次详细的解释. Memcheck命令行选项 –leak-check=<no| ...
- linux 命令行 过滤,利用linux命令行工具进行文本行过滤
在日常工作中会遇到需要筛选过滤要查看的日志等文本文件的任务,例如需要查看日志文件的最后几行等. 下面总结一下常见的对文本行过滤的方法. 常用命令行工具 接下来主要使用的是head,tail,sed和a ...
- 详解linux下auto工具制作Makefile源码包(制作篇)
2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一. 概述 为了更好的制作configure ...
- 实用!五款新型 Linux 命令行工具
使用新的替代工具来改进旧的命令行工具. 作者 | Ricardo Gerardi 译者 | 弯月,责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 以下为译文: 在Linux/Unix系统 ...
- Linux漏洞建议工具Linux Exploit Suggester
Linux漏洞建议工具Linux Exploit Suggester 在Linux系统渗透测试中,通常使用Nessus.OpenVAS对目标主机进行扫描,获取目标主机可能存在的漏洞.如果无法进行漏洞 ...
- Linux网络常用工具分类介绍
Linux网络命令较多,单纯的介绍网络命令的用法也没什么意思.本文将常见的网络命令进行分类,并做出思维导图,对每个分类的命令选择性的介绍其作用.常见选项和用法举例.BTW,不建议记住所有命令,了解一下 ...
最新文章
- 从Java类库看设计模式
- 干货丨机器学习必知的15大框架
- 会计的思考(41):会计的领悟—每一位业务骨干都是优秀的管理会计师
- win7/10 画图程序按宽度高度mm cm精确调整图片尺寸
- 1743. 从相邻元素对还原数组
- Linux常用命令大全(归类)
- php中系统函数的特征,老鸟需要知道的一些php系统类函数
- ios苹果应用ipa一键签名工具_ios签名何以做到不越狱不上架也能安装ipa文件?
- Excel2007文件XML
- 2021年边缘计算融资汇总
- 视壮提前祝大家国庆快乐!
- 烟雨PHP图床程序源码
- C语言:浮点型的基本知识
- 2021年电工杯B体详细思路分析
- 基于FPGA的频率计
- ffmpeg解析视频的每一帧(java )
- safari浏览器在使用videojs-contrib-quality-levels.js 播放视频时 清晰度失效, 报错Unhandled Promise Rejection: AbortError
- IFE2018-DAY05
- 古希腊悲剧《美狄亚》(2)
- ecmall mysql版本_ECMall的MySQL数据调用的简单方法