Comm语法简单实用的文本文件对比工具

Linux系统的Comm命令可以方便快捷的对比文本文件并输出差异结果,使用该命令需要一个前提最好先对文件进行排序,否则输出的差异结果一言难尽,因此会比较适合数据库导出数据的对比

所属分类 Linux

相关标签 脚本命令比较

需求

客户要求提供一个简单快捷的生产数据库数据对比工具。

两个不同模块数据库中的372万条记录是否一致。

第一反应是表关联查询对比,但是易用性较低,执行者需要链接数据操作。

同时需要技术人员远程支持客户操作,并且出错需要跟进分析,很麻烦,偏偏我又是个怕麻烦的人。

因此考虑将数据导出进行比较,通过SPOOL可以将数据进行格式化导出为TXT文件。

因此感觉最好解决方案自然是Shell脚本,一键执行导出数据并进行对比,生成对比结果。

Comm命令

Comm命令可以用于两个文件之间的比较,它有一些选项可以用来调整输出,以便执行交集、求差、以及差集操作。

comm [-参数] (文件1) (文件2)
  • -1:不显示在文件1中出现的内容
  • -2:不显示在文件2中出现的内容
  • -3:不显示同时在两个文件中都出现的内容

如果不指定参数,输出结果会有三列。

  1. 第一列文件1中出现的行
  2. 第二列文件2中出现的行
  3. 第三列两个中相同的行,各列是以制表符( )作为定界符。(实际应用作用不是很大,因为操作不便。)

Comm命令比较的时候最好是有序的文件。

有序的文件就是指文件中的内容第一个字符最好是经过排序的,否则输出结果会让你惊喜无比。

虽然可以通过组合命令完成无序文件的对比,但是易出错,分析太麻烦,偏偏我又是个怕麻烦的人(再次,摊手)。

对于我收到的诉求,我在SPOOL命令查询记录的时候,就顺手在SQL中sort了一下。

组合使用

为了便于Shell脚本的使用,Comm 命令在实际应用中会组合参数使用。

#不显示mebugs.log中出现的内容,不显示两者均出现的内容
#组合结果:显示com.log文件中与mebugs.log差异的内容
comm -23 mebugs.log com.log

对于大文件对比的时候建议将差异结果输出到新的文件中。

#利用重定向将结果输出保存下来,便于Shell脚本取用
comm -23 mebugs.log com.log > mebugsDiffCom.log
comm -13 mebugs.log com.log > sobestDiffCom.log

米虫

做一个有理想的米虫,伪全栈程序猿,乐观主义者,坚信一切都是最好的安排!

本站由个人原创、收集或整理,如涉及侵权请联系删除

本站内容支持转发,希望贵方携带转载信息和原文链接

本站具有时效性,不提供有效、可用和准确等相关保证

本站不提供免费技术支持,暂不推荐您使用案例商业化

发表观点

提示

昵称

邮箱

QQ

网址

当前还没有观点发布,欢迎您留下足迹!

同类其他

Linux

Linux采用EOF实现一键改密Shell脚本

Linux环境的Shell中通常将EOF与<<结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell,其特性可用于写入文件执行某些自定义操作等场景

Shell脚本循环逐行读取文件

Shell脚本循环读取文件常用的方案有输入重定向和管道操作,循环形式有while和for两种,具体的使用或搭配看个人习惯,个人尚未对命令进行性能验证

关键:Linux系统磁盘挂载

Linux系统一般情况下启动默认只加载系统盘,支持其他磁盘自由热插拔,如果发现自己的某些目录找不见了的时候不要慌看看是不是没有设置开机启动自动加载挂载磁盘内容,另外要特别注意首次安装系统记得磁盘挂载操作

awk强大的文本&文件的处理语言

awk,一种处理文本文件的语言,强大的文本分析工具。取三位创始人Alfred Aho、Peter Weinberger和Brian Kernighan的Family Name的首字符

Crontab配置定时任务处理日常工作

Linux服务器测试环境或正式生产环境常常设计一些定时例行处理的操作,如日记备份转移清理等,利用Crontab+Shell脚本组合实现定期定时操作,确保不会应工作繁忙忘记任务导致环境异常

通过ulimit命令解决Too many open files

项目启动报错:Too many open files,通过ulimit命令可以查看与管理用户/程序/进程占用资源情况,其中比较实用的是可以根据资源情况配置linux用户的最大进程数

选择个人头像

昵称

邮箱

QQ

网址

评论提示

  • 头像:系统为您提供了12个头像自由选择,初次打开随机为你选择一个
  • 邮箱:可选提交邮箱,该信息不会外泄,或将上线管理员回复邮件通知
  • 网址:可选提交网址,评论区该地址将以外链的形式展示在您的昵称上
  • 记忆:浏览器将记忆您已选择或填写过得信息,下次评论无需重复输入
  • 审核:提供一个和谐友善的评论环境,本站所有评论需要经过人工审核