Https://blog.mafr.de/2010/05/23/sorting-large-files/ এবং /unix//a/88704/9689 এর উপর ভিত্তি করে :
split -n l/20 input input-
for inpf in input-* ; do
sort --parallel="$(nproc --all)" "${inpf}" > sorted-"{$inpf}"
done
sort -m sorted-input-* > sorted-input
হালনাগাদ:
থেকে আমরা উপরে উত্তর দেখতে sort
অর্থাত - ইতিমধ্যে কি স্নিপেট উল্লেখ করে বাহ্যিক আর-ওয়ে একত্রীকরণ । সুতরাং সব চলমান পরে:
sort --parallel="$(nproc --all)" -u input > output
পর্যাপ্ত হতে হবে।
সীমা সম্পর্কে আমার বর্তমান অনুমানগুলি (কোড পরীক্ষা না করে) হ'ল:
- সর্বোচ্চ লাইনের দৈর্ঘ্য দৈহিক মেমরির পরিমাণ দ্বারা সীমাবদ্ধ। বাছাই করতে কমপক্ষে দুটি মেমরির মধ্যে ফিট করতে হবে
- লাইনের পরিমাণ - আমি অবগত নই
- ফাইল আকার - অবশ্যই ফাইল সিস্টেম দ্বারা
- সমান্তরালভাবে খোলা ফাইলের পরিমাণ - অপারেটিং সিস্টেমের উপর নির্ভর করে (এটি নির্দেশ করার জন্য ধন্যবাদ ডায়োমিডিস স্পিনেলিস !)
(এই উত্তরটিকে সম্প্রদায় উইকি হিসাবে চিহ্নিত করা হয়েছে - এটি উন্নত করতে উত্সাহিত বোধ করুন! :))