在Linux系统中,有多种简便方法可以比较两个文本文件的内容差异。以下是几种常用的方案:
diff file1.txt file2.txt
<
表示第一个文件内容,>
表示第二个文件内容bash
diff -u file1.txt file2.txt # 统一差异格式输出
diff -y file1.txt file2.txt # 并排对比
diff -i file1.txt file2.txt # 忽略大小写
vimdiff file1.txt file2.txt
或
vim -d file1.txt file2.txt
]c
:跳转到下一个差异点[c
:跳转到上一个差异点do
:将对方改动应用到当前文件dp
:将当前改动应用到对方文件colordiff file1.txt file2.txt
sudo apt install colordiff
(Debian/Ubuntu)comm file1.txt file2.txt
bash
comm -12 file1.txt file2.txt # 只显示共同内容
comm -23 file1.txt file2.txt # 只显示file1独有的内容
sdiff -w 120 file1.txt file2.txt
-w
参数指定输出宽度(字符数)|
:有差异的行<
:只在左边文件存在的行>
:只在右边文件存在的行cmp file1.txt file2.txt
md5sum file1.txt file2.txt
忽略空格差异:
diff -w file1.txt file2.txt # 忽略所有空白
diff -b file1.txt file2.txt # 忽略空白数量的变化
比较目录中的所有文件:
diff -r dir1/ dir2/
生成补丁文件:
diff -u old.txt new.txt > patch.txt
使用meld图形化工具:
meld file1.txt file2.txt
(需要先安装:sudo apt install meld
)
选择建议:
- 需要详细差异分析 → 使用diff -u
或vimdiff
- 快速检查是否相同 → 使用cmp
或md5sum
- 需要并排查看 → 使用sdiff -y
或meld
- 处理已排序文件 → 使用comm
每种工具各有优势,可根据具体需求选择最适合的比较方式。