zoukankan      html  css  js  c++  java
  • 文件比较、补丁制作、打印机打印

    21.1.4

    diff:以逐行的方式,比较文本文件的异同处

    • 以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
    [root@www ~]# diff [-bBi] from-file to-file
    选项与参数:
    from-file :一个档名,作为原始比对文件的档名;
    to-file   :一个档名,作为目的比对文件的档名;
    注意,from-file 或 to-file 可以 - 取代,那个 - 代表『Standard input』之意。
    
    -b  :忽略一行当中,仅有多个空白的差异(例如 "about me" 与 "about     me" 视为相同
    -B  :忽略空白行的差异。
    -i  :忽略大小写的不同。
    
    范例一:比对 passwd.old 与 passwd.new 的差异:
    [root@www test]# diff passwd.old passwd.new
    4d3    <==左边第四行被删除 (d) 掉了,基准是右边的第三行
    < adm:x:3:4:adm:/var/adm:/sbin/nologin  <==这边列出左边(<)文件被删除的那一行内容
    6c5    <==左边文件的第六行被取代 (c) 成右边文件的第五行
    < sync:x:5:0:sync:/sbin:/bin/sync  <==左边(<)文件第六行内容
    ---
    > no six line                      <==右边(>)文件第五行内容
    # 很聪明吧!用 diff 就把我们刚刚的处理给比对完毕了!
    

    cmp:比较两个文件,主要利用字节单位去比

    • 当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有所差异,预设会标示出第一个不同之处的字符和列数编号。若不指定任何文件名称或是所给予的文件名为"-",则cmp指令会从标准输入设备读取数据。
    [root@www ~]# cmp [-s] file1 file2
    选项与参数:
    -s  :将所有的不同点的位组处都列出来。因为 cmp 默认仅会输出第一个发现的不同点。
    
    范例一:用 cmp 比较一下 passwd.old 及 passwd.new
    [root@www test]# cmp passwd.old passwd.new
    passwd.old passwd.new differ: byte 106, line 4
    

    patch:用于修补文件

    • 与 diff 可是有密不可分
    • 先比较先旧版本的差异,并将差异档制作成为补丁档,再由补丁档升级旧文件
    • 指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。
    [root@www ~]# patch -pN < patch_file    <==升级 
    [root@www ~]# patch -R -pN < patch_file <==还原 
    选项与参数: -p  :后面可以接『取消几层目录』的意思。 
    -R  :代表还原,将新的文件还原成原来旧的版本。 
    范例二:将刚刚制作出来的 patch file 用来升级旧版数据 
    [root@www test]# patch -p0 < passwd.patch patching file passwd.old 
    [root@www test]# ll passwd* -rw-r--r-- 1 root root 1929 Feb 10 14:29 passwd.new -rw-r--r-- 1 root root 1929 Feb 10 15:12 passwd.old <==文件一模一样! 范例三:恢复旧文件的内容 
    [root@www test]# patch -R -p0 < passwd.patch 
    [root@www test]# ll passwd* -rw-r--r-- 1 root root 1929 Feb 10 14:29 passwd.new -rw-r--r-- 1 root root 1986 Feb 10 15:18 passwd.old # 文件就这样恢复成为旧版本罗 
    

    pr:对指定文件附注打印所需的页码或聚焦

    [root@www ~]# pr /etc/man.config
    
    
    2007-01-06 18:24                 /etc/man.config                  Page 1
    
    
    #
    # Generated automatically from man.conf.in by the
    # configure script.
    .....以下省略......
    
  • 相关阅读:
    docker 单kafka ,多分区
    spring data jpa + mysql使用json 类型
    C++ Multithread Tutorial
    GDB 调试程序
    C++ Project 积累(四)
    GDB 调试 C/C++ Project
    makefile 学习(一)
    Ubuntu 下配置 boost + eclipse
    C++ Project 积累(3)
    Leetcode Sudoku Solver
  • 原文地址:https://www.cnblogs.com/ananing/p/14228953.html
Copyright © 2011-2022 走看看