linux怎么比较文件内容
linux怎么比较文件内容详细介绍
在 Linux 中比较文件内容,可根据需求选择以下工具:
1.
diff - 逐行比较文本文件(最常用)
用途:显示两个文件的行差异,适合文本文件(如代码、配置)。
示例:
bash
file1.txt file2.txtfile1.txt file2.txt
dir1 dir2
输出说明:- 表示删除,+ 表示新增,@@ 标记差异的行范围。
2.
cmp - 二进制比较(快速定位首个差异)
用途:逐字节比较,适合二进制文件(如图片、可执行文件),或快速判断是否完全相同。
示例:
bash
file1.txt file2.txtfile1.txt file2.txt
场景:检查下载的文件是否完整(如 ISO 镜像)。
3.
vimdiff - 可视化对比(程序员友好)
用途:在 Vim 中左右分屏显示差异,支持合并修改。
示例:
bash
vimdiff file1.txt file2.txt
操作:
Ctrl + w + w切换窗口:diffupdate刷新差异dp(diff put)将当前窗口的修改同步到另一窗口。
4.
comm - 比较排序后的文件(显示交集 / 差异)
用途:比较两个已排序的文本文件,显示仅在第一个文件、仅在第二个文件、同时存在的行。
示例:
bash
file1.txt file1_sorted.txtfile2.txt file2_sorted.txt
file1_sorted.txt file2_sorted.txt
输出说明:
- 第 1 列:仅在第一个文件
- 第 2 列:仅在第二个文件
- 第 3 列:两个文件共有的行
(使用-1-2-3可隐藏对应列)
5.
sdiff - 并排显示差异(适合快速查看)
用途:将两个文件并排显示,差异行用 | 分隔。
示例:
bash
file1.txt file2.txt
输出示例:
plaintext
hello world | hello Linux # 左侧是 file1,右侧是 file2
常见场景总结
| 场景 | 推荐工具 | 优势 |
|---|---|---|
| 文本文件逐行对比 | diff |
细节清晰,支持目录比较 |
| 二进制文件校验 | cmp |
快速定位首个差异 |
| 可视化编辑 / 合并 | vimdiff |
集成编辑功能,适合代码修改 |
| 排序后的文件差异 | comm |
明确显示交集与独有内容 |
| 快速并排查看 | sdiff |
直观,无需复杂输出解析 |
提示:如果文件编码不同(如 Windows 的 CRLF 与 Linux 的 LF),先用 dos2unix 统一格式再比较。