सभी लेख

लाइन सॉर्टिंग: वर्णानुक्रम और संख्यात्मक क्रम में अंतर क्यों है

देवनागरी में अपरकेस-लोअरकेस जैसा कोई कॉन्सेप्ट ही नहीं है, इसलिए शुद्ध हिंदी सूची पर "केस-इनसेंसिटिव" विकल्प का कोई असर नहीं पड़ता। लेकिन असल दुनिया की फ़ाइलों में अक्सर हिंदी और अंग्रेज़ी लाइनें मिली-जुली होती हैं — वहाँ यह विकल्प सिर्फ़ लैटिन लिपि वाली एंट्री को प्रभावित करता है, देवनागरी वाली को नहीं।

वर्णानुक्रम बनाम संख्यात्मक सॉर्टिंग

वर्णानुक्रम (लेक्सिकोग्राफ़िक) सॉर्टिंग स्ट्रिंग की तुलना कैरेक्टर-दर-कैरेक्टर करती है, टेक्स्ट की तरह। इसी वजह से स्ट्रिंग "10", "9" से पहले आ जाती है, क्योंकि कैरेक्टर "1" लेक्सिकोग्राफ़िक रूप से "9" से छोटा है — सॉर्टिंग यह "समझती" नहीं कि यह एक संख्या है। संख्यात्मक सॉर्टिंग, इसके उलट, तुलना से पहले स्ट्रिंग को संख्या के रूप में पार्स करती है, जिससे अपेक्षित क्रम 9, 10, 11 मिलता है।

देवनागरी और अंकों की दो प्रणालियाँ

हिंदी टेक्स्ट में संख्याएँ देवनागरी अंकों (१, २, ३) या अरबी अंकों (1, 2, 3) दोनों में लिखी जा सकती हैं — दोनों अलग-अलग यूनिकोड कोड पॉइंट हैं। जो सूची कभी देवनागरी अंकों में और कभी अरबी अंकों में लिखी गई हो, उसमें संख्यात्मक सॉर्टिंग बिना पहले अंकों को एक प्रणाली में बदले ठीक से काम नहीं करेगी।

डुप्लिकेट हटाना

डीडुप्लिकेशन दोहराई गई लाइनों को कैरेक्टर-दर-कैरेक्टर तुलना करके हटाता है, मतलब से नहीं। एक अहम बारीकी है केस-सेंसिटिविटी और स्पेस की: स्ट्रिंग "टेक्स्ट" और "टेक्स्ट " (अतिरिक्त स्पेस के साथ) तकनीकी रूप से अलग हैं और तुलना से पहले अतिरिक्त नॉर्मलाइज़ेशन के बिना मर्ज नहीं होंगी।

यह किस काम आता है

  • इंपोर्ट से पहले ईमेल पते या URL की सूची से दोहराई गई एंट्री हटाना।
  • वर्शन या ID की सूची को टेक्स्ट के बजाय संख्यात्मक रूप से सॉर्ट करना।
  • दोनों सूचियों को एक जैसे सॉर्ट किए फ़ॉर्म में लाकर दो डेटासेट की जल्दी तुलना करना।

प्राकृतिक सॉर्टिंग (natural sort)

प्राकृतिक सॉर्टिंग वर्णानुक्रम और संख्यात्मक तरीकों के बीच एक समझौता है: यह किसी स्ट्रिंग के भीतर अंकों की सीक्वेंस को संख्या के रूप में पहचानती है, जबकि बाकी कैरेक्टर की तुलना टेक्स्ट की तरह करती है। इसी वजह से file2.txt, file10.txt से पहले आता है, भले ही तकनीकी रूप से ये स्ट्रिंग हैं, अलग-अलग संख्या नहीं — यह टेक्स्ट प्रीफ़िक्स वाले फ़ाइल नामों या वर्शन के लिए सुविधाजनक है।

टूल आज़माएँ