zoukankan      html  css  js  c++  java
  • Linux基础命令---diff

    diff

          逐行比较两个文本文件,把文件的差异显示到标准输出。如果要指定要比较目录,那么diff命令会比较目录中相同文件名的文件,不会比较子目录。

          此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

     

    1、语法

          diff [选项]  files

     

    2、选项列表

    选项

    说明

    -v | --version

    显示命令版本信息

    --help

    显示帮助文档

    -m | --mode=MODE

    设置目录的权限

    -i | --ignore-case

    比较的时候,忽略大小写

    --ignore-file-name-case

    在比较文件名的时候,忽略大小写

    --no-ignore-file-name-case

    比较文件名的时候,不能忽略大小写

    -E | --ignore-tab-expansion

    不比较tab

    -b | --ingore-space-change

    不比较空格数

    -w | --ignore-all-space

    忽略所有的空格

    -B | --ignore-blank-lines

    不比较空白行

    -I res | --ignore-mathcing-lines=res

    不比较含有指定字符串res的行

    --strip-trailing-cr

    出去输入行尾随的东西

    -a | --text

    将所有的文件都当做文本文件

    -c  -C NUM  --context[=NUM]

    显示不同之处的前后部分内容,默认是3行

    -u  -U NUM  --unified[=NUM]

    显示相同之处的前后部分内容,默认是3行

    --label LABEL

    使用文件的标签,而不是名字

    -p | --show-c-function

    比较c语言文件的时候,显示不同之处所在的函数

    -F RE  |  --show-function-line=RE

    显示匹配RE的最近的行

    -q | --brief

    只显示是否有差异,不显示详细内容

    -e | --ed

    输出一个ed脚本

    --normal

    输出一个正常的diff

    -n | --rcs

    结果以rcs的方式显示

    -y | --side-by-side

    将两个文件已并列方式显示比较结果

    -W num | --width=NUM

    使用“-y”选项的时候,指定列宽

    --left-column

    只输出公共行的左列

    --suppress-common-lines

    不要输出公共行

    -D NAME | --ifdef=NAME

    输出合并文件以显示‘#ifdef NAME’的差异

    --GTYPE-group-format=GFMT

    同上,但用GFMT格式化GTYPE输入组

    --line-format=LFMT

    同上,但用LFMT格式化GTYPE输入组

    --LTYPE-line-format=LFMT

    同上,但用LFMT格式化LTYPE输入行

    -l | --paginate

    将输出传递给pr”以分页

    -t | --expand-tabs

    将制表符展开为输出中的空格

    -T | --initial-tab

    通过预置选项卡使制表符对齐

    -N | --new-file

    将缺席文件视为空文件

    --unidirectional-new-file

    将缺席的第一批文件视为空文件

    -s | --report-identical-files

    当两个文件相同时报告

    -X FILE | --exclude-from=FILE

    排除与文件中任何模式匹配的文件

    -S FILE | --starting-file=FILE

    从文件开始比较目录时

    -r | --recursive

    用递归的方式比较子目录下的所有文件

    -x path

    不比较指定的文件

    --from-file=FILE1

    将FILE 1与所有操作数进行比较。FILE 1可以是一个目录

    --to-file=FILE2

    将所有操作数与文件2进行比较。文件2可以是一个目录

    --horizon-lines=NUM

    保持通用前缀和后缀的NUM行

    -d  --minimal

    努力找出一组较小的变更

    --speed-large-files

    假设文件很大,并且有许多零散的小更改。

     

    3、实例

    1)比较两个文件,不使用参数 (两个文件只有第一行不同)

    [root@localhost test02]# diff 1.c 2.c             //直接比较,这里只输出不同之处

    1c1

    逐行比较两个文本文件,把文件的差异显示到标准输出,adAD文件。

    ---

    逐行比较两个文本文件,把文件的差异显示到标准输出。

    2)使用选项-y,以分列的方式输出两个文件

    [root@localhost test02]# diff -y 1.c 2.c             //使用选项y,这里以列的方式,显示文件全部内容

    逐行比较两个文本文件,把文件的差异显示到标准输出,adAD文件。              |    逐行比较两个文本文件,把文件的差异显示到标准输出。

    如果要指定要比较目录,那么diff命令会比较目录中相同文件名的文                  如果要指定要比较目录,那么diff命令会比较目录中相同文件名的文

    此命令的适用范围:RedHatRHELUbuntuCentOSSUSEopenSUS            此命令的适用范围:RedHatRHELUbuntuCentOSSUSEopenSUS

    [root@localhost test02]# diff  1.c 2.c

    3)使用选项-W,指定列宽 

    [root@localhost test02]# diff -y -W 100 1.c 2.c     //这里指定列宽100,并不能完全显示,因此看不到差异之处

    逐行比较两个文本文件,把文件的差异显示到标准      |   逐行比较两个文本文件,把文件的差异显示到标准

    如果要指定要比较目录,那么diff命令会比较目录         如果要指定要比较目录,那么diff命令会比较目录

    此命令的适用范围:RedHatRHELUbuntuCentO    此命令的适用范围:RedHatRHELUbuntuCentO

    4)比较目录 

    [root@localhost weijie]# diff test01 test02               //这里只比较目录下相同名字的文件

    diff test01/1.c test02/1.c

    1c1

    逐行比较两个文本文件,把文件的差异显示到标准输出。

    ---

    逐行比较两个文本文件,把文件的差异显示到标准输出,adAD文件。

    5)使用选项-q,查看是否不同

    [root@localhost weijie]# diff -q test01/1.c test02/1.c     //比较是否不同

    Files test01/1.c and test02/1.c differ                         //只显示是否相同,不显示详细不同之处

  • 相关阅读:
    【GitHub】上传代码通用操作等(附下载单个文件夹或文件)
    【Git】之分支合并命令
    【FFmpeg】之Mac系统爬取所有M3U8视频下载方法
    i2c超时
    linux下串口调试
    cgminer分析
    i2c驱动理解
    STM32(三十七)SPI读取W25Q128flash的厂商ID、设备ID以及读写数据(硬件SPI)
    驱动静态和动态加载
    I2C基本原理及对I2C Adapter的理解
  • 原文地址:https://www.cnblogs.com/wj78080458/p/9981239.html
Copyright © 2011-2022 走看看