<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 閱讀(787) 評論(0)  編輯  收藏 所屬分類: GNU牛力
    主站蜘蛛池模板: h视频在线观看免费| 亚洲午夜无码毛片av久久京东热| 婷婷亚洲综合一区二区| 99久久99久久精品免费看蜜桃| 久久综合图区亚洲综合图区| 九九免费观看全部免费视频| 国产日韩成人亚洲丁香婷婷| 一级中文字幕乱码免费| 国产亚洲精久久久久久无码77777| jzzjzz免费观看大片免费| 亚洲国产精品日韩| 91视频免费观看| 亚洲熟妇av一区二区三区| 人妻在线日韩免费视频| 亚洲制服中文字幕第一区| 成人福利免费视频| 亚洲狠狠婷婷综合久久| 免费a级毛片永久免费| 日韩毛片在线免费观看| 中文字幕亚洲天堂| 国产精品99久久免费观看| 亚洲人成亚洲精品| 四虎www成人影院免费观看| 亚洲精品自偷自拍无码| 亚洲国产午夜中文字幕精品黄网站 | 97人妻无码一区二区精品免费| 亚洲AV无码精品蜜桃| 成年性羞羞视频免费观看无限| www亚洲精品久久久乳| 国产精品亚洲mnbav网站| 99爱视频99爱在线观看免费| 亚洲va在线va天堂va手机| 免费看男女下面日出水视频| a级毛片免费观看视频| 亚洲av日韩av综合| 久久影院亚洲一区| 国产成人精品免费视频动漫 | 久久久久亚洲AV综合波多野结衣| 久久国产精品成人免费| 亚洲国产日韩精品| 精品国产亚洲一区二区在线观看|