00339 linux查看两个文件差异的命令


前言

linux查看两个文件差异的命令。

Operating System: Ubuntu 22.04.4 LTS

命令

在 Linux 中,查看两个文件差异的常用命令是 diff,此外还有 vimdiffcolordiff 等工具。以下是详细说明:


1. diff 命令(最基础的文件对比工具)

diff 文件1 文件2

示例

diff file1.txt file2.txt

输出说明

  • < 表示第一个文件独有的行。
  • > 表示第二个文件独有的行。
  • a(add)、c(change)、d(delete)表示需要如何修改第一个文件才能匹配第二个文件。

常用选项

  • -u--unified:输出更易读的统一格式(适合补丁文件)。

    diff -u file1.txt file2.txt
  • -y:并排显示差异(需终端宽度足够)。

    diff -y file1.txt file2.txt
  • -i:忽略大小写差异。

  • -w:忽略空格差异。


2. vimdiff 命令(可视化对比,高亮显示差异)

vimdiff 文件1 文件2

或使用 Vim 的差异模式:

vim -d 文件1 文件2

特点

  • 左右分屏显示文件,差异部分会高亮。
  • 支持快捷键跳转(]c 下一处差异,[c 上一处差异)。
  • 适合交互式编辑合并文件。

3. colordiff 命令(带颜色的 diff 输出)

需先安装:

sudo apt install colordiff  # Debian/Ubuntu
sudo yum install colordiff  # CentOS/RHEL

使用方式同 diff,但输出会高亮显示差异:

colordiff file1.txt file2.txt

4. **git diff**(如果文件在 Git 仓库中)

git diff 文件1 文件2

优势:支持 Git 的彩色输出和更灵活的对比选项。


5. 其他工具

  • **meld**:图形化对比工具,支持目录和文件。

    meld 文件1 文件2
  • **icdiff**(Improved colordiff):更美观的并排对比。

    icdiff file1.txt file2.txt

实际场景示例

对比脚本文件并生成补丁:

diff -u old_script.sh new_script.sh > patch.diff

并排显示代码差异:

diff -y old_code.c new_code.c

根据需求选择工具:简单差异用 diff,复杂合并用 vimdiff,需要颜色输出用 colordiffgit diff

vim -d 文件1 文件2 如何退出显示

在使用 vim -d 文件1 文件2(或 vimdiff 文件1 文件2)进入差异对比模式后,退出方式与普通 Vim 相同。以下是具体方法:


退出 Vimdiff 的几种方式

  1. 保存并退出

    • 如果文件被修改且需要保存:

      :wq

      或分别保存两个文件后退出:

      :wa   " 保存所有文件
      :qa   " 退出所有文件
  2. 不保存强制退出

    • 放弃所有修改并退出:

      :q!

      或强制退出所有文件:

      :qa!
  3. 仅退出当前窗口

    • 如果分屏后只想关闭当前窗口(不退出整个 Vim):

      :q

补充说明

  • 快捷键

    • 在普通模式(按 Esc 确保未处于插入模式)下输入 :q 等命令。
    • 如果误操作,按 Esc 可取消当前命令。
  • 多文件操作

    Vimdiff 会同时打开多个文件,使用 :qa(全部退出)或 :waq(全部保存并退出)更高效。


记忆技巧

  • :q → quit(退出)
  • :q! → 强制退出(不保存)
  • :wq → write + quit(保存并退出)
  • :qa → quit all(退出所有分屏)

退出后即可返回终端命令行界面。

结语

第三百三十九篇博文写完,开心!!!!

今天,也是充满希望的一天。


文章作者: LuYF-Lemon-love
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LuYF-Lemon-love !
  目录