当前位置: 首页 > article >正文

Linux 快速对比两个文件的差异值

Linux 快速对比两个文件的差异值(无需排序、直接输出)

在日常开发或数据处理中,若需快速对比两个文本文件中的差异值(仅保留第一个文件中的独有内容),Linux 系统提供了两种高效方法。以下是具体操作及适用场景分析:


 

目录

Linux 快速对比两个文件的差异值(无需排序、直接输出)

方法一:comm 命令(需文件已排序)

方法二:grep 命令(无需排序、直接输出)

两种方法对比

注意事项


方法一:comm 命令(需文件已排序)

适用场景:文件内容已排序,且需精准对比。
步骤

  1. 预处理排序(若文件未排序):
    sort file1.txt -o file1_sorted.txt sort file2.txt -o file2_sorted.txt
  2. 执行对比
    comm -23 file1_sorted.txt file2_sorted.txt
     
    • 参数说明
      • -23:隐藏第二个文件和第三个列的输出,仅显示第一个文件独有的行。
      • 输出列含义(默认三列):
        • 第1列:仅 file1 存在的行
        • 第2列:仅 file2 存在的行
        • 第3列:两文件共有的行

方法二:grep 命令(无需排序、直接输出)

适用场景:文件未排序,且希望实时输出结果到终端。
命令

grep -Fvxf file2.txt file1.txt

复制

参数解析

  • -F:禁用正则表达式,按字面字符串匹配。
  • -v:反向匹配,仅输出不满足条件的行。
  • -x:整行精确匹配(避免部分匹配)。
  • -f file2.txt:从 file2.txt 中读取匹配模式。
  • 逻辑解释:在 file1.txt 中筛选出所有不在 file2.txt 中出现的行。

两种方法对比
特性comm 命令grep 命令
需预先排序✔️ 必需❌ 无需
输出效率高(适合大文件)中(逐行匹配,大文件略慢)
灵活性需固定列对比支持模糊匹配(移除 -x 参数)
适用场景严格有序数据对比快速实时对比

注意事项
  1. 性能差异
    • comm 对排序后文件的对比速度极快,但排序过程可能耗时。
    • grep 直接处理原始文件,但文件过大时内存占用较高。
  2. 内容规范
    • 确保文件无多余空格或隐藏字符(可用 cat -A 检查)。
  3. 扩展应用
    • 若需同时输出两文件的差异,可结合两次 grep
      grep -Fvxf file1.txt file2.txt # file2独有内容 
      grep -Fvxf file2.txt file1.txt # file1独有内容

通过以上方法,可快速定位文件差异,满足不同场景下的数据对比需求。


http://www.kler.cn/a/541816.html

相关文章:

  • Spring依赖注入方式
  • AWS Savings Plans 监控与分析工具使用指南
  • 原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
  • IDEA查看项目依赖包及其版本
  • 【go】交叉编译
  • 信创领域的PostgreSQL管理员认证
  • ORM框架(Object-Relational Mapping,对象关系映射框架)
  • 使用Hexo部署NexT主体网站
  • 现代前端工程化实践:高效构建的秘密
  • 以简单的方式过一生
  • k8s部署logstash
  • HTML 左右联动高亮示例
  • ‌Linux系统中无法使用netstat命令的原因及解决方法
  • Django 简单安装(pycharm)
  • 重生之我要当云原生大师(十五)归档和传输文件
  • 迷宫问题 XDOJ
  • Golang学习历程【第七篇 闭包type defer panic recover了解time包】
  • 【AI落地应用实战】DeepSeek大模型应用探讨与RAG技术全景——从实验室榜单看向真实业务场景
  • 易语言Easy Programming Language
  • ArrayList、LinkedList、HashMap、HashTable、HashSet、TreeSet
  • 【时序预测】-深度学习系列
  • halcon三维点云数据处理(十五)xyz_attrib_to_object_model_3d
  • 图片下载不下来?即便点了另存为也无法下载?两种方法教你百分之百下载下来
  • Failed to build mysqlclient
  • 帝国CMS8.0版多访问端支持可选不绑定二级域名
  • 二、Golang Channel通信和控制题目