[問題] 比對二個檔案的問題 cmp或其它方法?

看板Linux作者 (受遺棄之子)時間12年前 (2013/09/05 16:01), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/3 (看更多)
請問一下大家 最近為了自動化 所以用了jenkins自動編譯程式為java的war檔 之後在透過判斷新舊war檔是否差異來判斷要不要重新deploy 原本的判斷方式為… cmp -l a.war a.war.bak |wc -l 透過cmp -l 列出所有的差異 在統計行數 只要差異的行數超過10行就重新deploy程式…這樣基本上沒有問題 但是…因為該war檔大約有300m 而且比對下去大約有近3億個不同OTZ 要花費一些些時間…所以想請問一下是否有其它的方式可以加快速度… 或是在統計差異行數時只要超過幾行的差異時就停止cmp呢? ps差異數超過10行才重新deploy的原因是因為 重新編譯的檔案一定會有約8行的不同… 謝謝大家~ OTZ 重新確認一次後 "cmp -l" 的方式約 106(s) "diff -a --speed-large-files" 的方式約 30(s) 速度快很多… 怕謝…因該是3億個不同(?) -- 受遺棄之子 生來無長物 學著去承受寂寞 學著從黑暗中找到出路 誰會在那等候你... 安慰你...關心你呢 ? 學著去承受寂寞吧 學著自已一人作件 未曾夢想過外面世界 會有雙臂來擁抱你 你一直清楚明白 你的心孤獨無助 所以笑看孤寂吧...受遺棄之子... 學著去承受寂寞 學著如何去愛孤獨的生活 學著去承受寂寞 人生可以如此過 人生可以如 此愛 靠著獨自一人... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.216.178

09/05 16:07, , 1F
diff?
09/05 16:07, 1F

09/05 16:08, , 2F
有試著用diff比對…不過效果好像和cmp一樣…
09/05 16:08, 2F

09/05 16:28, , 3F
300MB也才3億bytes,怎會有3億行不同? XD 其實寫一個簡單的
09/05 16:28, 3F

09/05 16:28, , 4F
程式取代wc -l,也就是從stdin讀入超過預定的行數就exit ,
09/05 16:28, 4F

09/05 16:29, , 5F
如此就可以結束pipe, cmp也會終止 (broken pipe)
09/05 16:29, 5F
※ 編輯: hgs1906 來自: 59.126.216.178 (09/05 16:33)

09/05 16:36, , 6F
感謝樓上的幫忙 只想到計算行數都忘了其它方法了囧
09/05 16:36, 6F

09/05 16:59, , 7F
怕謝 想來想去還是不知道具體的寫法 OTZ
09/05 16:59, 7F
文章代碼(AID): #1IA3fGqj (Linux)
文章代碼(AID): #1IA3fGqj (Linux)