zoukankan      html  css  js  c++  java
  • [Linux] diff命令:逐行进行文件比较

    1. 比较文件

    $ diff file1 file2

    2. 比较文件夹

    $ diff -urNa dir1 dir2
      -u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context
      -r, --recursive                 recursively compare any subdirectories found
          --no-dereference            don't follow symbolic links
      -N, --new-file                  treat absent files as empty
          --unidirectional-new-file   treat absent first files as empty
          --ignore-file-name-case     ignore case when comparing file names
          --no-ignore-file-name-case  consider case when comparing file names
      -a, --text                      treat all files as text
          --strip-trailing-cr         strip trailing carriage return on input

    对于其中一方缺失的文件,仅输出文件名及其所在的文件夹名称:

    $ diff -rua dir1 dir2

    3. diff命令的参数及完整用法说明

    $ diff --help
    Usage: diff [OPTION]... FILES
    Compare FILES line by line.
    
    Mandatory arguments to long options are mandatory for short options too.
          --normal                  output a normal diff (the default)
      -q, --brief                   report only when files differ
      -s, --report-identical-files  report when two files are the same
      -c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context
      -u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context
      -e, --ed                      output an ed script
      -n, --rcs                     output an RCS format diff
      -y, --side-by-side            output in two columns
      -W, --width=NUM               output at most NUM (default 130) print columns
          --left-column             output only the left column of common lines
          --suppress-common-lines   do not output common lines
    
      -p, --show-c-function         show which C function each change is in
      -F, --show-function-line=RE   show the most recent line matching RE
          --label LABEL             use LABEL instead of file name
                                      (can be repeated)
    
      -t, --expand-tabs             expand tabs to spaces in output
      -T, --initial-tab             make tabs line up by prepending a tab
          --tabsize=NUM             tab stops every NUM (default 8) print columns
          --suppress-blank-empty    suppress space or tab before empty output lines
      -l, --paginate                pass output through 'pr' to paginate it
    
      -r, --recursive                 recursively compare any subdirectories found
          --no-dereference            don't follow symbolic links
      -N, --new-file                  treat absent files as empty
          --unidirectional-new-file   treat absent first files as empty
          --ignore-file-name-case     ignore case when comparing file names
          --no-ignore-file-name-case  consider case when comparing file names
      -x, --exclude=PAT               exclude files that match PAT
      -X, --exclude-from=FILE         exclude files that match any pattern in FILE
      -S, --starting-file=FILE        start with FILE when comparing directories
          --from-file=FILE1           compare FILE1 to all operands;
                                        FILE1 can be a directory
          --to-file=FILE2             compare all operands to FILE2;
                                        FILE2 can be a directory
    
      -i, --ignore-case               ignore case differences in file contents
      -E, --ignore-tab-expansion      ignore changes due to tab expansion
      -Z, --ignore-trailing-space     ignore white space at line end
      -b, --ignore-space-change       ignore changes in the amount of white space
      -w, --ignore-all-space          ignore all white space
      -B, --ignore-blank-lines        ignore changes where lines are all blank
      -I, --ignore-matching-lines=RE  ignore changes where all lines match RE
    
      -a, --text                      treat all files as text
          --strip-trailing-cr         strip trailing carriage return on input
    
      -D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs
          --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT
          --line-format=LFMT          format all input lines with LFMT
          --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT
        These format options provide fine-grained control over the output
          of diff, generalizing -D/--ifdef.
        LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'.
        GFMT (only) may contain:
          %<  lines from FILE1
          %>  lines from FILE2
          %=  lines common to FILE1 and FILE2
          %[-][WIDTH][.[PREC]]{doxX}LETTER  printf-style spec for LETTER
            LETTERs are as follows for new group, lower case for old group:
              F  first line number
              L  last line number
              N  number of lines = L-F+1
              E  F-1
              M  L+1
          %(A=B?T:E)  if A equals B then T else E
        LFMT (only) may contain:
          %L  contents of line
          %l  contents of line, excluding any trailing newline
          %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec for input line number
        Both GFMT and LFMT may contain:
          %%  %
          %c'C'  the single character C
          %c'OOO'  the character with octal code OOO
          C    the character C (other characters represent themselves)
    
      -d, --minimal            try hard to find a smaller set of changes
          --horizon-lines=NUM  keep NUM lines of the common prefix and suffix
          --speed-large-files  assume large files and many scattered small changes
    
          --help               display this help and exit
      -v, --version            output version information and exit
    
    FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'.
    If --from-file or --to-file is given, there are no restrictions on FILE(s).
    If a FILE is '-', read standard input.
    Exit status is 0 if inputs are the same, 1 if different, 2 if trouble.
    
    Report bugs to: bug-diffutils@gnu.org
    GNU diffutils home page: <http://www.gnu.org/software/diffutils/>
    General help using GNU software: <http://www.gnu.org/gethelp/>
    $ diff --help
  • 相关阅读:
    04 UUID
    MD5加密算法(信息摘要算法)、Base64算法
    03 MD5加密、Base64处理
    MVC分层思想、SSM编程架构
    1网络编程基本概念
    Tomcat闪退的解决办法
    win10下的jdk1.8安装
    枚举练习
    1000元买物品分配
    win10解决vc++6.0不兼容问题方法
  • 原文地址:https://www.cnblogs.com/bymo/p/9856080.html
Copyright © 2011-2022 走看看