文本比较工具常见的有:

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之文本比较工具相关推荐

  1. linux ranger 文本模式,Linux 中 ranger 的使用方法

    ranger 是一个很好的工具,它为你的 Linux 文件提供了一个多级视图,并允许你使用方向键和一些方便的命令进行浏览和更改. ranger 是一款独特且非常方便的文件系统导航器,它允许你在 Lin ...

  2. linux cat 文本颜色,linux文本文件查看、展示命令 :cat head tail grep more less nl

    linux文本文件查看.显示命令 :cat head tail grep more less nl linux文本文件查看.显示命令 :cat head tail  grep  more less n ...

  3. linux基础-文本编辑器,Linux基础之vim文本编辑器

    一.简介: vim是从 vi发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 1.viimproved,vim 全屏编辑器,模式化,功能强大,短小精悍 ...

  4. linux 搜索文本手机号,Linux三剑客学习之提取手机号码

    [问题描述] 会员提供的信息中,有些手机号是会员随意输入的,因此要统计出有效的手机号. 如以下信息:18295089368 1895089368 185089368 182089368 1788888 ...

  5. 在线压力测试工具-程序员在线工具网

    本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...

  6. 比较文本差异的工具_Linux 开发的五大必备工具 | Linux 中国

    Linux 已经成为工作.娱乐和个人生活等多个领域的支柱,人们已经越来越离不开它.在 Linux 的帮助下,技术的变革速度超出了人们的想象,Linux 开发的速度也以指数规模增长.因此,越来越多的开发 ...

  7. 史上最全的 Linux Shell 文本处理工具集锦,快收藏!

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 来自:大CC 链接:www.cnblogs.com/me15/p/3427319.html 本 ...

  8. shell脚本教学进阶——Linux三大文本处理工具之grep

    1.简介 Linux系统中grep命令是一种强大的文本搜索.查找过滤工具,,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global Regular Expression Prin ...

  9. 超全的 Linux Shell 文本处理工具集锦,快收藏

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 大CC 来源 | www.cnblogs.co ...

最新文章

  1. python数据分析实况_机器学习竞赛分享:通用的团队竞技类的数据分析挖掘方法...
  2. php中的preg_replace函数,PHP函数preg_replace()
  3. Mybatis动态代理模式实现CRUD
  4. java jar 配置文件路径_java jar 配置文件的相对路径问题
  5. (原創) 如何使用Operator Overloading? (C/C++)
  6. fastjson JSONObject.toJSONString 出现 $ref: $.的解决办法(重复引用)
  7. 【Flink】Failed to create checkpoint storage at checkpoint coordinator side
  8. Oracle - 导入异常ORA-01659和11G在Exp时空表不能导出
  9. Matlab Tricks(五)—— shuffle 一个矩阵
  10. C# WPF ListView Bindding 图片
  11. [WebApi] 捣鼓一个资源管理器--多文件上传
  12. Python用pyecharts绘制中国各地级市gdp分布点图
  13. 人体计算机原理,人体静力学
  14. (73)Wangdao.com第十二天_JavaScript consol 对象与控制台
  15. 鲸探发布点评:9月1日发售《新石器黄玉猪龙形珮》数字藏品
  16. 重新编译CDH版本hadoop报错:Non-resolvable parent POM: Could not transfer artifact com.
  17. Pythont打开 txt 格式的文件
  18. Adobe中国授权培训中心操作说明—Adobe认证
  19. 达梦数据库dm7同构数据库的双向同步
  20. 北大光华管理学院公开课北京站

热门文章

  1. 神州数码DCRS设备学习总结心得
  2. Windows Mobile】认识Windows Mobile
  3. onos在公有云应用
  4. Excel表格实用技巧大全
  5. 零基础怎么写好一篇博客文章
  6. ps学习笔记2(修复无损、水印等方法)
  7. No.10 兼容性测试,测试计划和测试报告的内容
  8. mysql数据库初识 使用数据库,创建表,表中数据增删改 自用笔记
  9. “自顶向下,逐步求精”的概念和应用
  10. 华为 P1 wifi 连接显示身份验证出现问题解决办法