... | sort -arg1 -arg2 -... | head -n $k
के बराबर चाहते हैं, लेकिन, मेरी समझ यह है कि तरह पूरे इनपुट से अधिक ओ (n लॉग n) जाना होगा। मेरे मामले में मैं बहुत सारे डेटा से निपट रहा हूं, इसलिए रनटाइम मेरे लिए मायने रखता है - और मेरे पास भी मेरे अस्थायी फ़ाइलों के साथ मेरे tmp/फ़ोल्डर को बहने की आदत है।
मैं इसे ओ (एन लॉग के) उदाहरण के लिए उपयोग करना चाहता हूं एक ढेर, जो संभवतः तेज़ी से आगे बढ़ेगा, और जो काम करने वाली सेट मेमोरी को के पर भी कम कर देता है।
क्या मानक कमांड लाइन उपकरण का कुछ संयोजन है जो इसे कुशलता से कर सकता है, मुझे कुछ कोड करने के बिना? आदर्श रूप से यह सॉर्ट कमांड की पूर्ण अभिव्यक्तिपूर्ण सॉर्ट पावर का समर्थन करेगा। सॉर्ट (कम से कम उबंटू पर) में कोई मैन-पेज-डॉक्यूमेंटेड स्विच नहीं है, इसे खींचने के लिए ...
क्या आपने उपरोक्त पाइप को बेंचमार्क किया है? यह कितना तेज़ है और आपको इसकी कितनी तेज़ी से आवश्यकता है? –
ने बेंचमार्क नहीं किया है; लेकिन यह विभिन्न डेटासेट्स पर अन्वेषक है (यानी हर बार जब यह एक बंद हो जाता है, तो मैं इसे समाप्त करने के लिए प्रतीक्षा करने वाली कमांड लाइन पर हूं), और अजीब बात यह है कि मैं इनपुट के गीगाबाइट्स पर दस मिनट तक जा सकता हूं - विशेष रूप से जघन्य जब टीएमपी/अंत के पास बहती है। मुझे लगता है कि एक बेहतर तरीका है। मैं इनपुट को छेड़छाड़ करके, प्रत्येक को सॉर्ट करने और डेटा को डीक करने के लिए सिर/पूंछ का उपयोग करके टीएमपी/ओवरफ्लो प्राप्त कर सकता हूं, और फिर अंतिम पास में पुनः संयोजित कर सकता हूं; लेकिन यदि एक लाइनर उपलब्ध है तो यह करने के लिए एक बड़ी परेशानी है। – jdowdell
क्या आपने डेटा सेट की खोज के लिए डिज़ाइन की गई भाषा का उपयोग करने पर विचार किया है, जैसे आर? –