如何在Linux命令行中进行文件比对?

使用diff命令可逐行比对文件差异,支持统一格式输出、忽略空白与大小写,递归比较目录,而cmp用于二进制文件差异检测,辅以colordiff等工具实现彩色或词级对比。

如何在Linux命令行中进行文件比对?

在Linux命令行中比对文件,最常用的方法是使用diff命令。它能逐行比较两个文件的内容,输出它们的差异,非常适合检查配置文件、代码版本或文本内容的变化。

使用 diff 命令查看文件差异

diff 是最基本的文件比对工具。基本语法如下:

diff file1.txt file2.txt

输出结果会显示哪些行被修改、添加或删除。常见的标记含义:

  • 数字c/数字:表示内容被更改(change)
  • 数字d/数字:表示行被删除(delete)
  • 数字a/数字:表示行被添加(add)

如果希望以更易读的方式查看差异,可以加上 -u 参数生成统一格式(unified diff)输出:

diff -u file1.txt file2.txt

忽略空白字符和大小写差异

有时候文件内容逻辑相同,但因空格、制表符或换行不同而被判定为不同。可以使用以下选项:

  • -w:忽略所有空白字符差异
  • -b:忽略空白数量变化(如多个空格变一个)
  • -i:忽略大小写

例如:

diff -w file1.txt file2.txt

比较目录中的文件

diff 也可以比较两个目录下的文件。使用 -r(递归)选项:

如何在Linux命令行中进行文件比对?

标书对比王

标书对比王是一款标书查重工具,支持多份投标文件两两相互比对,重复内容高亮标记,可快速定位重复内容原文所在位置,并可导出比对报告。

如何在Linux命令行中进行文件比对?12

查看详情 如何在Linux命令行中进行文件比对?

diff -r dir1/ dir2/

它会列出所有子目录中不一致的文件,并显示具体差异。

使用 cmp 查看二进制文件差异

对于非文本文件(如图片、可执行程序),diff 可能不适用。此时可用 cmp 命令:

cmp file1.bin file2.bin

它会报告第一个不同字节的位置。加上 -l 参数可列出所有不同之处。

图形化或高亮显示差异(可选工具)

如果系统安装colordiffwdiff,可以让输出带颜色或按词比对:

  • colordiff file1.txt file2.txt:彩色显示 diff 结果
  • wdiff -n file1.txt file2.txt:按单词级别比对

这些工具需额外安装,但在排查细微文本变化时非常有用。

基本上就这些。掌握 diff 和 cmp 就能满足大多数文件比对需求,配合选项还能适应不同场景。关键是根据文件类型选择合适工具,再用参数过滤无关差异。

linux 字节 工具 配置文件 linux命令 系统安装 递归 delete linux

上一篇
下一篇
text=ZqhQzanResources