摘要:有沒有辦法從文件中獲得唯一的行數和出現次數比使用sort | uniq -c | sort -n
更有效?高效排序| uniq爲大量副本的情況下
詳細:我經常管sort | uniq -c | sort -n
做日誌分析時,得到其日誌條目的一般趨勢顯示最多/最少等這個工程的大部分時間 - 當我處理一個非常不同的大型日誌文件,最終導致大量的重複文件(在這種情況下,sort | uniq -c
最終需要很長時間)。
示例:我現在面臨的具體情況是爲了從'未參數化'的mysql bin日誌獲取趨勢,以確定哪些查詢運行得最多。對於通過grep/sed組合來移除參數的一百萬個條目的文件 - 導致大約150條獨特的行 - 我花了大約3秒鐘的時間查看sedding和大約15秒的排序/統一。
目前,我已經解決了一個簡單的C++程序,它保留了<行的地圖,count> - 它在不到一秒的時間內完成了任務 - 但我想知道現有的實用程序是否已經存在。
等待,直到你的C++程序運行內存不足:-D – 2012-06-24 01:25:34
爲什麼會使用地圖存儲出現的次數使用更多的內存比排序每次出現(即排序中的第一個排序| uniq -c | sort -n序列)? –
[GNU'sort'](http://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html)將使用臨時文件來保存太大而無法一次裝入內存的數據。 – ephemient