轉載 ?原文地址:http://zhaoyanblog.com/archives/776.html
單個文件,對其內容進行排序,使用sort命令:
sort a.txt
去重加-u選項
sort -u a.txt
輸出到一個文件
sort -o a.txt_sort -u a.txt
如果是100個1G大小的文件呢?如何進行排序去重呢?使用sort命令也是可以實現的。
第一步:先對單個文件進行排序去重
sort -o a1.txt -u a1.txt
sort -o a2.txt -u a2.txt
sort -o a3.txt -u a3.txt
sort -o a4.txt -u a4.txt
。。。。
sort -o a100.txt -u a100.txt
第二步:使用sort的合并排序
sort -o a.txt -u -m a*.txt
-m選項 表示merge已經有序的文件,如果文件事先沒有排好序,這個可能會出錯。
在執行merge的時候,你可能會遇到空間不足,無法寫/tmp/sortXXXX的錯誤。
因為是多個大文件的合并操作,內存不夠用,肯定是要寫臨時文件的。默認sort是寫到/tmp目錄下。
還好sort命令想的周到,你可以通過-T 選項指定一個較大空間的磁盤目錄作為sort的臨時文件目錄。
sort -o a.txt -T /disk/temp -u -m a*.txt
最后等結果吧。