सॉर्ट करें (यूनिक्स)

कम्प्यूटिंग में, सॉर्ट, यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम का एक स्टैन्डर्ड कमांड लाइन प्रोग्राम है, जो सॉर्टेड ऑर्डर में अपने कमांड-लाइन प्रोग्राम में सूचीबद्ध सभी कम्प्यूटर फाइल के इनपुट या कॉनकटेनेसन की पंक्तियों को प्रिंट करता है। इनपुट की प्रत्येक पंक्ति से निर्गत एक या अधिक 'सॉर्ट की' के आधार पर सॉर्टिंग की जाती है। डिफ़ॉल्ट रूप से, सभी इनपुट को 'सॉर्ट की' माना जाता है। ब्लैंक स्पेस, डिफ़ॉल्ट फ़ील्ड सेपरेटर है। कमांड कई कमांड-लाइन इंटरफ़ेस का समर्थन करता है जो कार्यान्वयन के अनुसार भिन्न हो सकते हैं। उदाहरण के लिए फ़्लैग सॉर्ट ऑर्डर को उलट देगा।

इतिहास
sortकमांड जो एक सामान्य सॉर्ट प्रक्रिया को चलाता है, पहली बार मॉलटिक्स में लागू किया गया था। बाद में, यह वर्जन 1 यूनिक्स में दिखाई दिया। यह वर्जन मूल रूप से एटी एंड टी बेल लेबोरेटरीज में केन थॉम्पसन द्वारा लिखा गया था। वर्जन 4 तक यूनिक्स थॉम्पसन ने इसे यूनिक्स पाइपों का उपयोग करने के लिए संशोधित किया था, परंतु सॉर्ट ने आउटपुट फ़ाइल को नाम देने के लिए एक विकल्प बरकरार रखा क्योंकि इसका उपयोग किसी फ़ाइल को सॉर्ट करने के लिए किया गया था। वर्जन 5 यूनिक्स में, थॉम्पसन ने स्टैन्डर्ड इनपुट का प्रतिनिधित्व करने के लिए "-" का आविष्कार किया।

sort का वर्जन, जीएनयू कोरुटिल्स बंडल, माइक हर्टेल और पॉल एगर्ट द्वारा लिखा गया था। यह कार्यान्वयन मर्ज़ सॉर्ट एल्गोरिदम को नियोजित करता है।

इसी तरह के कमांड कई अन्य ऑपरेटिंग सिस्टम पर उपलब्ध हैं, उदाहरण के लिए sort कमांड एमएसएक्स-डॉस वर्जन 2 के लिए एएससीआईआई कॉर्पोरेसन के एमएसएक्स-डॉस 2 टूल्स का भाग है।

sort कमांड को आईबीएम आइ ऑपरेटिंग सिस्टम में भी पोर्ट किया गया है।

सिन्टैक्स
sort [OPTION]... [FILE]...

जब  नहीं होता है या   को   दिया जाता है, तो यह कमांड मानक इनपुट से रीड करता है।

संख्या के अनुसार सॉर्ट
"-n" विकल्प प्रोग्राम को संख्यात्मक मान के अनुसार सॉर्ट करता है। "du" कमांड प्राउड्यूस आउटपुट का उत्पादन करता है जो एक संख्या से प्रारंभ होता है, जो फ़ाइल का साइज़ (फ़ाइल साइज़) होता है, इसलिए इसका उत्पादन (आउटपुट) "sort" के लिए पाइप किया जा सकता है जिससे फ़ाइलों की एक सूची तैयार की जा सकती है जो (आरोही) फ़ाइल साइज़ के अनुसार सॉर्ट की गई है।

find कमांड के साथ ls विकल्प 7वें फ़ील्ड में फ़ाइल साइज़ प्रिंट करता है, इसलिए इसकी एक सूची LaTeX फ़ाइल साइज़ के आधार पर सॉर्ट फ़ाइलें निम्न द्वारा उत्पादित की जाती हैं:

कॉलम या फ़ील्ड
"-k" विकल्प का उपयोग किसी विशेष कॉलम पर सॉर्ट करने के लिए करता है। उदाहरण के लिए, दूसरे कॉलम पर सॉर्ट करने के लिए "-k 2" का उपयोग करें। पुराने वर्जनों में, "+1" विकल्प कार्यक्रम को दूसरे कॉलम पर सॉर्ट करने के लिए किया जाता था (+2 तीसरे कॉलम पर, आदि)।

मल्टीपल फ़ील्ड सॉर्ट
"-k m,n" विकल्प का उपयोग किसी ऐसे कीवर्ड पर सॉर्ट करने के लिए किया जाता है जो संभवतः कई फील्ड्स से मिलकर बनता है तथा कॉलम m से प्रारंभ होकर कॉलम n पर समाप्त होता है।

यहां पहला सॉर्ट कॉलम 2 का उपयोग करके किया जाता है।  कॉलम 2 से आरंभ और समाप्त होने वाली की को सॉर्ट करना और संख्यात्मक रूप से सॉर्ट करना निर्दिष्ट करता है। यदि   इसके अतिरिक्त उपयोग किया जाता है, सॉर्ट कुंजी कॉलम 2 से प्रारंभ होगी और पंक्ति के अंत तक विस्तारित होगी।   डिफ़ॉल्ट रूप से वर्णानुक्रम में सॉर्ट करते हुए, कॉलम 1 में मान का उपयोग करके ब्रेक रीलैशन का निर्देश देता है। ध्यान दें कि बॉब और चाड का वर्ग समान है और अंतिम आउटपुट में वर्णानुक्रमिक रूप से सॉर्ट हैं।

टैब डीलिमिटेड फाइल सॉर्ट
टैब से अलग किए गए मानों के साथ किसी फ़ाइल को सॉर्ट करने के लिए कॉलम सीमांकक के रूप में एक टैब वर्ण निर्दिष्ट करने की आवश्यकता होती है। यह चित्रण शेल के डॉलर-उद्धरण संकेतन का उपयोग करता है

टैब को C में एस्केप अनुक्रम के रूप में निर्दिष्ट करने के लिए।

रीवर्स सॉर्ट करें

-r विकल्प सॉर्ट के क्रम को उलट देता है:

रैंडम सॉर्ट
जीएनयू वर्जन में "sort" कमांड का एक "-R" या "--random-sort" विकल्प होता है जो हैशिंग पर आधारित होता है; परंतु यह पूर्ण रूप से रैंडम शफल नहीं प्रदान करता है, क्योंकि यह समानता वाली पंक्तियों को साथ में सॉर्ट करता है। यद्यपि, यूनिक्स उपयोगिता "shuf" द्वारा रियल रैंडम शफल प्रदान किया जाता है।

वर्जन के अनुसार सॉर्ट
जीएनयू वर्जन में "sort" कमांड का एक "-V" या "--version-sort" विकल्प होता है जो वर्जन नंबरों के लिए नेचुरल सॉर्ट करता है। यह टेक्स्ट से नंबरों को भागों में विभाजित करता है जिसमें लेटर्स के ब्लॉक और डिजिट्स के ब्लॉक होते हैं। अक्षरों के ब्लॉक की तुलना अल्फ़ा-नूमेरिक रूप से की जाती है, और अंकों के ब्लॉक की तुलना संख्यात्मक रूप से की जाती है। सबसे बाईं ओर के अंक जो भिन्न होते हैं वे परिणाम निर्धारित करते हैं। ब्लॉक की तुलना बाएं से दाएं की जाती है और उस लूप में पहला नॉन-ईक्वल ब्लॉक तय करता है कि कौन सा टेक्स्ट बड़ा है। यह आईपी अड्रेस, डेबियन पैकेज वर्ज़न स्ट्रिंग्स और इसी तरह के प्रोग्रामों के लिए कार्य करता है जहां वेरीअबल लेंथ की संख्याएं स्ट्रिंग्स में एम्बेडेड होती हैं।

यह भी देखें

 * संकलन
 * युनीक कमांड की सूची
 * यूनिक
 * शुफ़

बाहरी संबंध

 * Original Sort manpage The original BSD Unix program's manpage
 * Further details about sort at Softpanorama
 * Further details about sort at Softpanorama
 * Further details about sort at Softpanorama
 * Further details about sort at Softpanorama