ivaneeo's blog

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

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          注:而2路hunk則在"===="后加上1,2或3來指出引起不同的那個(gè)文件.

          $diff3 sigrot.2 sigrot.1 sigrot.3
          產(chǎn)生如下的輸出(在這里因?yàn)榭臻g的原因?qū)敵鲎隽私財(cái)?:
            ====
            1:3c
              #Version 2.0
            2:3c
              #Version 1.0
            3:3c
              #Version 3.0
            ====1
            1:9,10c
              srcdir=$HOME/doc/signatures
              srcfile=$srcdir/$sigfile
            2:8a
            3:8a
            ====1
            1:12c
              old=$(cat $srcdir/num)
            2:10c
            3:10c
              old=$(cat num)
            ...
          第一個(gè)hunk是3路hunk,其他的都是2路hunk.從sigrot.1或sigrot.3中生成sigrot.2時(shí),必須把從sigrot.2中來的下面兩行添加到sigrot.1或sigrot.3的第8行后:
            srcdir=$HOME/doc/signatures
            srcfile=$srcdir/$sigfile
          類似地,若要依據(jù)sigrot.2來生成sigrot.1,必須把sigrot.1的第10行改為sigrot.2中來的第12行.

          可以使用-m或--merge選項(xiàng)來告訴diff3對(duì)文件進(jìn)行合并,然后再手工對(duì)結(jié)果排序:
          $diff3 -m sigrot.2 sigrot.1 sigrot.3 > sigrot.merged

          程序清單6.7 使用diff3合并選項(xiàng)產(chǎn)生的輸出
            #!/usr/local/bin/bash
            #sigrot.sh
            <<<<<<< sigrot.2
            #Version 2.0
            |||||||sigrot.1
            #Version 1.0
            =======
            #Version 3.0
            >>>>>>> sigrot.3
            #Rotate signatures
            #Suitable to be run via cron
            ############################

            sigfile=signature
            srcdir=$HOME/doc/signatures
            srcfile=$srcdir/$srcfile

            old=$(cat $srcdir/num)
            let new=$(expr $old+1)

            if [ -f $srcfile.$new ]; then
              cp $srcfile.$new $HOME/.$sigfile
              echo $new > $srcdir /num
            else
              cp $srcfile.1 $HOME/.$sigfile
              echo 1 > $srcdir /num
            fi

            return 0

          "<<<<<<<"標(biāo)記對(duì)應(yīng)myfile,">>>>>>>"對(duì)應(yīng)yourfile,"|||||||"對(duì)應(yīng)oldfile.在本例中,只需要最新的版本號(hào),為了成功合并3個(gè)版本,將刪除標(biāo)記行和1.0及2.0版本指定的行.
          posted on 2005-08-04 17:19 ivaneeo 閱讀(355) 評(píng)論(0)  編輯  收藏 所屬分類: GNU牛力
          主站蜘蛛池模板: 岑巩县| 清丰县| 甘谷县| 双鸭山市| 合江县| 朝阳市| 始兴县| 兰西县| 永定县| 汉源县| 南康市| 成都市| 工布江达县| 安仁县| 舞阳县| 河南省| 林甸县| 新疆| 铅山县| 大方县| 公安县| 肇源县| 旬阳县| 徐闻县| 嘉鱼县| 鸡西市| 南部县| 双鸭山市| 田东县| 盐城市| 大足县| 固安县| 河池市| 平遥县| 亳州市| 东明县| 永兴县| 尼玛县| 白水县| 中卫市| 陆良县|