当前位置: 首页 > news >正文

diff命令和vimdiff命令

文章目录

    • diff命令
      • 基本用法
      • 选项
      • 示例
    • vimdiff命令
      • 命令格式
      • 选项说明
      • 常用操作

diff命令

diff命令是一个文本比较工具,用于比较两个文件的内容,它会逐行比较两个文件的内容并输出它们之间的差异。下面是diff命令的常用选项和用法:

基本用法

比较两个文件的内容:

diff file1 file2

在输出的信息中:

  • <表示第一个文件中存在但第二个文件中不存在的行
  • >表示第二个文件中存在但第一个文件中不存在的行
  • c表示两个文件中存在差异的行
  • !表示两个文件中存在差异的行,但是无法比较

选项

  • -r--recursive:递归比较目录下的所有文件
  • -a--text:将二进制文件视为文本文件进行比较
  • -i--ignore-case:忽略大小写进行比较
  • -w--ignore-all-space:忽略所有空格字符进行比较
  • -B--ignore-blank-lines:忽略空白行进行比较
  • -u--unified:输出统一格式的差异信息
  • -q--brief:仅输出文件是否不同的信息,不输出差异内容
  • -s--report-identical-files:当文件相同时也输出信息
  • -y--side-by-side  以并列的方式显示文件的异同之处。(常用)
  • -W<宽度>或--width<宽度>  在使用-y参数时,指定栏宽。(常用)
  • -c  显示全部内文,并标出不同之处

示例

范例文件

[root@localhost ~]# cat csq.txt 
I like LINUX 
I don't speak English, which makes my studies very difficult
but it doesn't affect my love for LINUX
[root@localhost ~]# cat zhw.txt 
I like Linux 
I can speak English, which makes my studies very difficult
but it doesn't affect my love for Linux
  1. 比较两个文件的内容:
[root@localhost ~]# diff csq.txt zhw.txt 
1,3c1,3
< I like LINUX 
< I don't speak English, which makes my studies very difficult
< but it doesn't affect my love for LINUX
---
> I like Linux 
> I can speak English, which makes my studies very difficult
> but it doesn't affect my love for Linux
  1. 比较两个目录下的所有文件:
[root@localhost ~]# diff -r /home/ftptest/ /home/zhw/
只在 /home/zhw/ 存在:.bash_history
只在 /home/ftptest/ 存在:hosts
只在 /home/ftptest/ 存在:sysctl.conf
只在 /home/ftptest/ 存在:test.txt
  1. 忽略大小写进行比较:
[root@localhost ~]# diff -i zhw.txt csq.txt 
2c2
< I can speak English, which makes my studies very difficult
---
> I don't speak English, which makes my studies very difficult
  1. 输出统一格式的差异信息:
[root@localhost ~]# diff -u csq.txt zhw.txt 
--- csq.txt     2023-05-15 08:52:47.487039081 +0800
+++ zhw.txt     2023-05-15 08:53:33.503040150 +0800
@@ -1,3 +1,3 @@
-I like LINUX 
-I don't speak English, which makes my studies very difficult
-but it doesn't affect my love for LINUX
+I like Linux 
+I can speak English, which makes my studies very difficult
+but it doesn't affect my love for Linux
  1. 仅输出文件是否不同的信息,不输出差异内容:
[root@localhost ~]# diff -q csq.txt zhw.txt 
文件 csq.txt 和 zhw.txt 不同

vimdiff命令

vimdiffvim编辑器自带的文件差异比较工具,它可以让用户在一个终端窗口中同时打开两个文件,并将它们的差异以不同的颜色进行标示,从而方便用户进行比较和合并操作。下面是vimdiff命令的详细解释和使用方法:

命令格式

vimdiff [选项] 文件1 文件2

选项说明

  • -d:在左右排列的两个窗口中同时打开 csq.txt 和 zhw.txt 两个文件,如下图所示
    image-20230515103140926

  • -o:以一上一下的方式打开这csq.txt和zhw.txt 两个文件,如图所示:

    image-20230515103249778

常用操作

  • 上下左右箭头:在左右两个窗口中移动光标
  • Ctrl-w + w:在左右两个窗口之间切换焦点
  • Ctrl-w + r:将或上下两个窗口的位置交换
  • ]c:移动光标到下一个差异处
  • [c:移动光标到上一个差异处
  • do:将光标所在处的修改应用到另一个文件中
  • dp:将光标所在处的修改从另一个文件中复制到当前文件中
  • :diffupdate:更新差异信息
  • :wqa:保存并退出
  • :qa:强制退出
  • zo:打开折叠,显示差异处的内容
  • zc:关闭折叠,隐藏差异处的内容
http://www.lryc.cn/news/68546.html

相关文章:

  • AcWing 797.差分(C++)
  • Python每日一练(20230515) 只出现一次的数字 I\II\III
  • 基于【EasyDL】【图像分类】实现农作物病害识别小程序
  • 元宇宙又“死”了!Epic老板:你当6亿用户是摆设?
  • 阶段小结2022
  • linux0.12-8-11-vsprintf.c
  • Node.js 与 WebAssembly
  • OpenCL编程指南-4.4矢量操作符
  • 索洛模型(二)
  • 【多微电网】基于粒子群优化算法的面向配电网的多微电网协调运行与优化(Matlab代码实现)
  • 使用Atmel Studio开发Arduino的ATmega328P单片机
  • docker基础命令
  • 数组名+1和数组名+1的区别
  • 开放原子训练营(第三季)inBuilder低代码开发实验室初体验
  • sql数据定义语句(cascade,set,null,no action的区别)
  • Java进程(基础)
  • Android之 Activity活动详解
  • 车载软件架构——闲聊几句AUTOSAR BSW(五)
  • APP图标尺寸规范一文了解清楚
  • 写给程序员Android Framework 开发,
  • html实现一个一闪一闪的按钮,CSS实现一个一闪一闪的按钮,Css闪烁点标,css设置按钮层次感,css按钮美化,CSS按钮动画过渡,CSS按钮添加阴影
  • 品优购项目学习记录04--列表页
  • script标签type值application/json,importmap和module
  • 基于ArcGIS实现陕西省1:250000比例尺地形图分幅和编号
  • 校园安全,一键报警主机助力保障
  • RabbitMQ养成记 (7. 消息可靠性投递)
  • SpringBoot配置连接两个或多个数据库
  • Python面试题汇总:高效备战技巧
  • 如何区分比特率、波特率和频谱带宽?
  • sklearn中的特征工程(过滤法、嵌入法和包装法)