我想找出兩個文字檔案(超過 50 GB)之間的差異。
我嘗試過diff
,但是,我遇到了memory exhausted
問題。
我使用的是Windows7。我的程式碼是 PHP 的。我從我的 php 中呼叫 diff 為:
shell_exec("C:\\cygwin64\\bin\\bash.exe --login -c 'diff $text_files_path/$OldDatabaseFile.txt $text_files_path/$NewDatabaseFile.txt > $text_files_path/TempDiff_$OldDatabaseFile$NewDatabaseFile.txt 2>&1'");
有人告訴我rdiff
這會產生簽名和增量,但是我沒有測試它,因為我不知道如何開始。
我可以從哪裡安裝它?我可以從哪裡運行它?從 Windows cmd 還是 cygwin cmd?
答案1
您嘗試--speed-large-files
切換到嗎diff
?它應該浪費更少的記憶體:
diff --speed-large-files [...]
從手冊頁diff
:
--速度大檔案
假設大文件和許多分散的小更改
答案2
wxHex編輯器
wxHexEditor 是免費的,並且能夠比較最大 2^64 位元組(2 ExaByte)的大檔案。有一個圖形使用者介面。跨平台。很多功能。
要免費獲取它,請選擇以下選項之一:
下面是與上面相同的建議。但如果您對這些感興趣,請提供詳細資訊。
螢幕截圖
力量
• 十六進位(Hex) 編輯器。這對於進行逆向工程很有幫助。
• 跨平台。 Linux、Mac 作業系統、Windows
• 易於使用的圖形使用者介面(GUI)
• 支援高達 2^64 位元組 (2 ExaByte) 的超大文件
• 並排比較兩個大檔案(diff)。 (可選)列出並蒐索所有差異。
• 非常快速的搜索
• 使用少量 RAM
• 不要建立臨時檔案。所以它使用了非常小的儲存空間。
• 深色或明亮主題
• 多語言 15 種語言
• 開源。如果您不熟悉“開源”,那麼這意味著該軟體具有更強的安全性和更強的隱私性。因為它的程式碼可公開供審查並可向 GitHub 貢獻,網址為https://github.com/EUA/wxHexEditor或在 SourceForge 上https://sourceforge.net/p/wxhexeditor/code/
• 有吸引力的GNU 通用公共授權版本2。而不是以營利為目的的公司。https://github.com/EUA/wxHexEditor/blob/master/LICENSE
挑戰
• 兩個程式碼儲存庫之間的混淆。截至 2021 年 8 月撰寫本文時,GitHub 儲存庫似乎是最新的。上次更新於 2021 年,地址為https://github.com/EUA/wxHexEditor 相比之下,SourceForge 儲存庫位於https://sourceforge.net/projects/wxhexeditor/wxHexEditor 的最後一次更新是 2017 年 12 月 31 日。
表達你的支持
• 如果您喜歡此應用程序,請透過以下方式向作者和貢獻者表示支持:
___• 票證支持:https://sourceforge.net/projects/wxhexeditor/support
___• 論壇支援:https://sourceforge.net/p/wxhexeditor/discussion/
___• 補丁位於https://sourceforge.net/p/wxhexeditor/patches/
使用
• wxHexEditor 0.23 • Debian 10 Buster • GNOME 3.30.2
答案3
我可以從哪裡安裝它(rdiff
)?
有人告訴我
rdiff
這會產生簽名和增量,但是我沒有測試它,因為我不知道如何開始。我可以從哪裡安裝它?我可以從哪裡運行它?從 Windowscmd
還是 cygwin cmd ?
西格文包括rdiff
.它在rdiff-1.0.0-1
包裝中。
我可以從哪裡運行它(rdiff
)?
有人告訴我
rdiff
這會產生簽名和增量,但是我沒有測試它,因為我不知道如何開始。我可以從哪裡安裝它?我可以從哪裡運行它?從 Windowscmd
還是 cygwin cmd ?
您執行rdiff
Cygwin bash
shell。
shell_exec("C:\\cygwin64\\bin\\bash.exe --login -c 'diff $text_files_path/$OldDatabaseFile.txt $text_files_path/$NewDatabaseFile.txt > $text_files_path/TempDiff_$OldDatabaseFile$NewDatabaseFile.txt 2>&1'");
與上面類似的命令(根據需要替換diff
和rdiff
修改命令選項)應該可以工作。
我怎麼知道哪個包裹rdiff
在裡面?
尋找包含特定命令的套件的最簡單方法是使用Cygwin 軟體包搜尋網頁:
捲動到頁面底部:
這確認了這rdiff-1.0.0-1
是要安裝的正確套件。
看安裝並更新 Cygwin 軟體包取得安裝說明。