我有兩個文件,每行都有一個UUID。每個文件都有幾十萬行(它們是從數據庫轉儲生成的)。這些文件需要排序並找到差異(添加/刪除)。這是很容易使用一些* nix的工具來完成,只需要幾秒鐘:使用Node.js排序和區分大文件
$ sort file-a.txt > file-a-sorted.txt
$ sort file-b.txt > file-b-sorted.txt
$ diff file-a-sorted.txt file-b-sorted.txt
但是我想這個功能添加到了一種旨在用於多平臺使用,我們(建節點)一個CLI 。因此,產生子流程並委託給這些工具不是一種選擇。
因爲'笨蛋'並將每個文件加載到內存中,在換行符上分割並在生成的數組上調用.sort()
的效果驚人地好(雖然使用了相當多的內存,但速度很快......),但發現差異更加困難。
我確定答案在於流的領域,但我缺乏經驗來操縱它們,所以我不確定從哪裏開始。
什麼是使用Node.js加載,排序和區分這些大文件的有效技術?
我不是在尋找完整的解決方案(雖然,感覺自由!),只是在這個階段指針會非常有用。
謝謝!
感謝您抽出時間來推薦此工具 - 非常好=] –