<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
    統一格式是對上下文格式的修改版本,它不顯示重復的上下文而且還用其他辦法壓縮輸出內容.統一格式以下面的開頭來標識要比較大文件:
      --- srcfile srcfile_timestamp
      其后是一個或多個塊(hunk),格式如下:
        @@ srcfile_range dstfile_range @@
          line_from_either_file
          line_from_either_file
      以@@開頭的每一行都標志一個塊的開始.在塊中,上下文行以空格開頭,而有差別的行以"+"或"-"開頭,以表示相對于srcfile在此位置上添加或刪除一行.
    命令diff -u hello.c howdy.c產生的輸出如下:
      ---hello.c  Web Aug 9 21:02:42 2000
      +++howdy.c  Web Aug 9 21:04:30 2000
      @@ -1,12 +1,13 @@
        #include <stdio.h>
        +#include <stdlib.h>

        int main(void)
        {
       -     char msg [] = "Hello,Linux programmer!";
       +     char msg [] = "Hello,Linux programmer, from howdy.c!";
      
             puts(msg);
       -     printf("Here you are, using diff.\n");
       +     printf("howdy.c says, `Here you are, using diff.`\n");
       -     return 0;
       +     exit(EXIT_SUCCESS);
        }
    對這一輸出進行翻譯,用語言來描述怎么把hello.c轉變成howdy.c:
      .緊挨著#include <stdio.h>一行之后加入#include <stdlib.h>
      .緊挨著前半個大括號之后,刪除
        char msg[] = "Hello, Linux Programmer!";
        并加入
        char msg[] = "Hello, Linux Programmer, from howdy.c!";
      .緊挨著puts(msg);之后,刪除
        printf("Here you are, using diff.\n");
        并加入
        printf("howdy.c says, 'Here you are, using diff.'\n");
      .緊挨著最后一個空行之后,刪除
        return 0;
        并加入
        exit(EXIT_SUCCESS);
    雖然統一格式既緊湊又容易閱讀,但是統一格式的差異文件卻有一個缺點:目前,只有GNU diff能產生統一格式的差異文件而且只有GNU patch能理解統一格式.

    要判別兩個二進制文件的差異,只需把它們的名字作為參數傳遞給diff:
      $diff hello howdy
      Binary files hello and howdy differ
    如果要顯示有差別的行,則使用-a選項.但是需注意這樣做會輸出重定向到一個文件:
      $diff -a hello howdy > diffs
      Files hello.c and howdy.c differ
    要查看兩個文本文件是否不同但又不顯示差異之處,可以使用diff的-q選項:
      $diff -q hello.c howdy.c
      Files hello.c and howdy.c differ

      假如你想忽略某種差別.實現這個目的的做法是使用-I regexp選項.
        $diff -u -I include hello.c howdy.c
        --- hello.c Web Aug 9 21:02:42 2000
        +++ howdy.c Web Aug 9 21:04:30 2000
        @@ -2,11 +3,11 @@

        int main(void)
        {
       -       char msg[ ] = "Hello. Linux programmer!";
       +       char msg[ ] = "Hello. Linux programmer, from howdy.c!";

               puts(msg);
        -      printf("Here you are, using diff.\n");
        +      printf("howdy.c says, `Here you are, using diff.\n'";
        -      return 0;
        +      exit(EXIT_SUCCESS);
        }
    上面的例子使用了-I regexp來忽略"include"的行.

    另一組有用的diff命令行選項能改變它對空白的處理方式.-b選項讓diff忽略輸入文件中空白數量的變化;-B讓diff忽略刪除或插入空行的改動;-w在逐行比較時忽略空白的變化.-b和-w的區別在哪里?-b忽略的是輸入文件之間空白數量上的變化,而-w則忽略在原本沒有空白的地方添加的空白.
    posted on 2005-08-04 17:20 ivaneeo 閱讀(781) 評論(0)  編輯  收藏 所屬分類: GNU牛力
    主站蜘蛛池模板: 国产精品亚洲美女久久久 | 日韩免费视频播播| 亚洲精品**中文毛片| 99精品视频在线视频免费观看| 亚洲热妇无码AV在线播放| 四虎一区二区成人免费影院网址| 国产成人免费a在线视频色戒| 国产精品亚洲lv粉色| 亚洲日韩人妻第一页| 中文字幕免费在线看线人动作大片| 免费在线看片网站| 国产中文字幕在线免费观看| 精品亚洲一区二区| 91热久久免费精品99| ass亚洲**毛茸茸pics| 日本一线a视频免费观看| 视频一区在线免费观看| 中文字幕精品无码亚洲字| 99re6在线精品免费观看| 亚洲成人午夜在线| 免费无码A片一区二三区| 在线亚洲v日韩v| 亚洲美女又黄又爽在线观看| 免费人成在线观看网站品爱网| 亚洲日韩乱码中文无码蜜桃臀| 24小时日本在线www免费的| 黄床大片30分钟免费看| 久久精品国产亚洲一区二区| 日本人的色道免费网站| 国产亚洲蜜芽精品久久| 亚洲va久久久噜噜噜久久狠狠 | 无码国产精品一区二区免费模式| 亚洲国产福利精品一区二区| 日韩精品视频免费网址| 波霸在线精品视频免费观看| 亚洲明星合成图综合区在线| 免费h黄肉动漫在线观看| 99精品视频在线观看免费专区 | 粉色视频免费入口| 久久精品国产亚洲AV麻豆王友容 | 亚洲a级片在线观看|