在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
每种工具各有优势,可根据具体需求选择最适合的比较方式。