UNIX系统下diff的三种格式

UNIX系统下diff的三种格式

diff命令是UNIX系统中常用的一个命令,其功能是比较两个文本文件之间的差异。

目前diff的输出有三种格式,分别是:正常格式(normal diff)上下文格式(context diff)合并格式(unified diff)

1、正常格式

命令格式 :

diff <更改之前的文件名> <更改之后的文件名>

举例:
创建两个文件 file1.txt 和 file2.txt,内容分别如下:
what is your name?
my name is lilei.

what is your name?
my name is hanmeimei.

使用diff命令比价两个文件的不同:
diff file1.txt file2.txt

结果如下:

注释:   
第一行:2c2   前一个2表示file1.txt的第2行有变动,c表示变动的模式 更改(change),此外变动模式还有 a 增加(addition),d 删除(deletion)
第二行: < my name is lilei.   < 表示从file1.txt文件中删除,后面是要删除的内容。
第三行: ---   用来分割file1.txt 和file2.txt
第四行:  > my name is hanmeimei.    > 表示添加到file2.txt文件中,后面是添加的内容。

2、上下文格式

命令格式
diff -c <更改之前的文件名> <更改之后的文件名>

举例:
diff -c file1.txt file2.txt

结果如下:

注释:
第一行: *** file1.txt    2018-04-20 10:08:51.338188679 +0800
第二行:--- file2.txt    2018-04-20 10:09:41.387461602 +0800
以上两行显示两个文件的基本信息,文件名和时间,其中“***”表示更改之前的文件,“---”表示更改之后的文件

第三行: ***************   此行是一个分割线

第四行: *** 1,2 ****
第五行:   what is your name?
第六行: ! my name is lilei.
以上三行表示file1.txt文件有两行内容,从1-2,内容如第五、六行显示。
文件内容的每行前边会有一个标识符,空表示无改动,!表示有改动,- 表示被删除,+表示被增加

第七行: --- 1,2 ----
第八行:   what is your name?
第九行: ! my name is hanmeimei.
以上三行表示的含义同上,针对file2.txt文件

3、合并格式

命令格式
diff -u <更改之前的文件名> <更改之后的文件名>

举例:
diff -u file1.txt file2.txt

结果如下:

注释:
第一行: --- file1.txt    2018-04-20 10:08:51.338188679 +0800
第二行: +++ file2.txt    2018-04-20 10:09:41.387461602 +0800
以上两行显示两个文件的基本信息,文件名和时间,其中“---”表示更改之前的文件,“+++”表示更改之后的文件

第三行: @@ -1,2 +1,2 @@
第四行:  what is your name?
第五行:-my name is lilei.
第六行: +my name is hanmeimei.
以上四行其实和上下文格式显示的内容是差不多的,只不过是将单独显示的文件内容合并到一起显示,这样更简单。对于两个文件相同的内容只显示一遍,而不同的内容分别显示。
-1,2 表示file1.txt有两行内容, +1,2表示file2.txt有两行内容  
显示的内容部分,每行前边也有一个标识符,空表示无变动,-表示删除,+表示增加

补充:Git命令中的diff采用的格式就是UNIX的合并格式

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书从实质上、专业上讲解UNIX操作系统,深刻地剖析了UNIX系统的基本概念。内容包括UNIX的基本特性及高级性能,例如shell配置、目录管理、shell编程,编辑器的使用方法等。本书条理清晰、重点突出,为快速了解与掌握UNIX操作系统提供了极有价值的参考。 译 者 序 “旧时王榭堂前燕,飞入寻常百姓家”,可以说是目前Unix系统逐渐普及的生动写照。在短短的几年前,UNIX对于普通计算机用户来说还是一个可望而不可及的神秘世界,其应用仅限于那些高性能计算和大型计算的少数“特权”部门,比如石油、气象和高能物理等。而在近两年,这种情况发生了根本的变化。基于Intel CPU的PC机走入了千家万户,同时基于开放源码的类UNIX操作系统Linux也迅速地为大众所接受,在这种情况下,每个人都能够接触计算机,继而接触Unix。但是我们如何接触Unix呢?很多人面对UNIX会觉得手足无措,甚至敬而远之,他们不敢轻易接触UNIX,这是因为UNIX中各种各样的命令、纷繁众多的参数、并不十分友好的操作界面以及UNIX的专业性像一扇厚厚的铁门一样将他们拒之门外。追究这种情况产生的根源,那就是没有一本适合他们、为他们着想的好书引导着他们走近UNIX,而本书的面世则彻底地改变了这种状况,因为本书的作者从构思到出书,再到中译版的问世,都是本着这样一个目的,那就是为各界同仁们敬上一把开启那一扇铁门的钥匙,继而引导读者畅游UNIX世界。不可否认的是,操作UNIX的确不如Windows方便随意,不过对于那些没有用过UNIX但又希望和计算机更亲密接触的人士,我禁不住要向你们推荐UNIX和这本书,因为UNIX让你了解计算机,而本书将让你了解UNIX,而这些的基础当然是阅读本书。那么,朋友,开始行动吧。另外,幸运的读者朋友们在享受这本书的同时,我们还需要对几位朋友表示敬意,他们都为推出这本精美充实的译著付出了汗水和劳动,其中刘宝旭、郭立生、蒋文保等都对本书的翻译和校对提供了极为有价值的意见和建议。在此让我们一起对这些热心的朋友表示诚挚的谢意。由于时间仓促,译者个人水平所限,疏漏之处在所难免,敬请读者指正。 2000年9月20日 前 言 Unix以最为灵活的操作系统而著称,但同时也是最难于掌握的系统之一。对初学者来说,Unix充满迷雾。这主要是因为初学者面对纷繁众多的命令而感到迷惑。开始学Unix的时候,非常易于迷失方向,因为这时候可能对Unix的工作细节一无所知。但是,一旦了解了Unix以后,你就会发现它的强大、通用和迷人之处,甚至可以用Unix完成几乎所有的工作。其实这也就是本书的目的所在。本书将详细地向读者介绍Unix系统,但并不是讲解一大堆的命令和程序。本书分三个阶段介绍UNIX,首先是一个入门指南,然后介绍基本使用方法,最后讲解特殊的应用程序。在第一部分中,将向读者介绍如何使用命令行界面和图形用户界面进行基本操作。在第二和第三部分中,集中介绍执行文件管理和shell操作等日常任务时用到的基本Unix特性。前三部分包含了要熟练使用Unix所必须了解的核心内容。比如说,配置shell和管理目录等。在第四和第五部分中,则包含了诸如shell编程,以及用户可以根据自己的需要选择的各种编辑器等专题。第一部分中主要介绍如何登录到系统等的基本操作。在本部分中,也将介绍两个流行的Unix GUI,即Motif和Open-Look。通过这一部分的学习,可以掌握登录、管理文件夹、启动程序以及使用两个GUI编辑文件。第二和第三部分包含了对于日常操作所必须要了解的内容。例如对文件结构的详细解释以及对shell的深入讲解。另外,在这两部分中,还将介绍如何管理文件和目录,以及建立、访问、拷贝和移动文件。读者还可以学习到如何配置Unix来满足自己的需求。Unix是一个多用户系统。每个用户都有自己的系统界面,并可以以任何方式对该界面进行配置。该界面称为shell,用户可以使用一些特殊的shell变量和命令来配置它。第四和第五部分着重介绍了几个特定的过滤器和编辑器。第四部分集中讲解了sed和diff等高级过滤器。然后又分别介绍了正则表达式和sort、uniq等数据过滤器。第五部分讨论了Vi、Ex和Emacs等编辑器。在本书中,使用了大量表格列出了每一种Unix特性所涉及到的命令。在每一章的末尾都会列出该章中所讨论到的命令。最后一章提供了所有这些命令的完整列表,以及对这些命令选项的详细解释。本书的出发点是向读者提供一种对Unix系统的实质性、专业性的介绍。UNIX系统是非常难于掌握的,而本书将针对一些常见的难点给予详细的介绍。本书将把重点放在系统的使用上,是指理解后的使用。
第1章 UNIX操作系统概述 7 1.1 UNIX操作系统简介 7 1.2 UNIX系统组成 7 1.3 UNIX启动过程 8 1.4 UNIX用户登录过程 8 1.5 与UNIX有关的几个名词 9 第2章 UNIX基本常识 11 2.1 启动终端 11 2.2 登录 11 2.3 初始化文件 11 2.4 注销(退出UNIX系统) 12 第3章 UNIX文件系统 13 3.1 文件系统分类 13 3.2 文件类型 13 3.2.1 正规文件 13 3.2.2 目录文件 14 3.2.3 字符和块设备文件 15 3.2.4 套接字文件 15 3.2.5 命名管道文件 16 3.2.6 链接文件 16 3.3 树型目录结构 16 3.4 文件和目录的命名 18 3.5 UNIX文件存取权限 18 3.6 重定向与管道 21 3.6.1 UNIX重定向 21 3.6.2 UNIX管道 22 3.7 常用配置文件 22 3.7.1 /etc/passwd文件 22 3.7.2 /etc/group文件 22 3.7.3 /etc/hosts 23 3.7.4 /etc/services 23 3.8 文件系统管理 23 3.8.1 mount 23 3.8.2 umount 24 3.8.3 加载配置文件 24 3.8.4 fsck 25 第4章 UNX系统常用命令 27 4.1 UNIX命令基础 27 4.1.1 UNIX命令的一般格式 27 4.1.2 特殊功能键和字符 28 4.1.3 查看帮助信息 30 4.1.4 在后台运行程序 31 4.1.5 在指定时间执行指定程序 31 4.2 vi编辑器的最基本用法 32 4.2.1 vi简介 32 4.2.2 vi的启动和退出 33 4.2.3 vi的两种模式 33 4.2.4 vi的基本操作 34 4.2.5 vi的高级操作 36 4.3 目录操作命令 38 4.3.1 pwd 38 4.3.2 mkdir 38 4.3.3 cd 38 4.3.4 rmdir 39 4.4 文件操作命令 39 4.4.1 ls 39 4.4.2 cat 40 4.4.3 head 41 4.4.4 tail 41 4.4.5 more 41 4.4.6 cp 43 4.4.7 mv 44 4.4.8 rm 44 4.4.9 chmod 44 4.4.10 chown 46 4.4.11 chgrp 46 4.4.12 cmp 46 4.4.13 diff 47 4.4.14 wc 47 4.4.15 split 47 4.4.16 touch 48 4.4.17 file 48 4.4.18 pack 48 4.4.19 pcat 49 4.4.20 unpack 49 4.4.21 find 49 4.4.22 grep 51 4.4.23 pg 52 4.4.24 ln 52 4.4.25 sort 53 4.4.26 compress 53 4.4.27 uncompress 54 4.4.28 gzip 54 4.4.29 gunzip 54 4.4.30 tar 54 4.4.31 cpio 55 4.4.32 tee 56 4.5 状态信息命令 57 4.5.1 w 57 4.5.2 who 57 4.5.3 whodo 57 4.5.4 logname 58 4.5.5 whoami 58 4.5.6 whereis 58 4.5.7 which 58 4.5.8 date 58 4.5.9 cal 59 4.5.10 time 59 4.5.11 id 59 4.5.12 hostid 60 4.5.13 hostname 60 4.5.14 df 60 4.5.15 du 60 4.5.16 stty 61 4.5.17 tty 61 4.5.18 history 61 4.5.19 alias 61 4.5.20 echo 62 4.5.21 uname 62 4.5.22 clear 62 4.6 网络命令 62 4.6.1 arp 62 4.6.2 finger 63 4.6.3 wall 63 4.6.4 mesg 63 4.6.5 write 63 4.6.6 ping 63 4.6.7 netstat 64 4.6.8 telnet 64 4.6.9 ftp 64 4.7 进程管理命令 65 4.7.1 kill 65 4.7.2 ps 66 4.7.3 sleep 68 4.7.4 nice 68 4.7.5 shutdown 68 4.7.6 halt 69 4.7.7 poweroff 69 4.7.8 reboot 69 4.8 用户管理命令 69 4.8.1 su 69 4.8.2 groupadd 69 4.8.3 groupdel 70 4.8.4 useradd 70 4.8.5 userdel 70 4.8.6 passwd 71 第5章 shell的基础知识 72 5.1 什么是shell 72 5.2 别名化 73 5.3 shell变量 74 5.3.1 shell变量的存储机制 74 5.3.2 变量替换 74 5.3.3 命令替换 76 5.4 用户环境 76 5.5 两个重要的环境变量 77 5.6 shell启动文件 78 5.7 监控进程 78 第6章 附录 79 6.1 ftp命令参考 79 6.2 vi命令参考 80 6.3 find命令详解 85 6.3.1 Find命令形式 85 6.3.2 Find命令参数 85 6.3.3 Find命令举例 87 6.4 grep命令详解 99

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值