कैसे लाइनों की तुलना करता है?


0

मैंने हमेशा माना है कि sortबिना किसी अतिरिक्त तर्क के, शाब्दिक क्रम में एक फ़ाइल को सॉर्ट करेगा। हालाँकि आज मैं निम्नलिखित परीक्षण मामले में भाग गया:

sort test2.txt
a/a
a/c
a//c
a/d

जैसा कि आप देख सकते हैं कि तीसरी लाइन में दो स्लैश हैं, इसलिए दूसरी स्लैश एक ऐसी जगह है जहां पड़ोसी लाइनों में क्रमशः 'c' और 'd' अक्षर होते हैं। मुझे संदेह है कि '/' किसी भी कोड-पृष्ठ में 'c' और 'd' के बीच आता है, इसलिए मुझे लगता है कि डिफ़ॉल्ट तुलना एल्गोरिथ्म कड़ाई से शाब्दिक नहीं है।

क्या कुछ पूर्व-प्रसंस्करण है (जैसे गैर-अक्षरों को हटाना?) या विशेष मामलों (जैसे "एक या अधिक प्रतीकों का एक अनुक्रम प्रतीकों के किसी अन्य अनुक्रम के बराबर है?") प्रतीकों की तुलना करने के लिए।

मैंने manपेज पढ़ा है sortलेकिन मुझे वहाँ कोई ज्ञान नहीं मिला।

मैं उपयोग करता हूं

sort --version
sort (GNU coreutils) 8.5
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Mike Haertel and Paul Eggert.

और मुझे वास्तव में आगे के विश्लेषण के लिए लाखों URL को क्रमबद्ध करने की आवश्यकता है, जो शाब्दिक आदेश मानता है - क्या कोई विकल्प हैं जो मैं sortइसे प्राप्त करने के लिए पारित कर सकता हूं ?


मैंने अपने Windows + Cygiwn सॉर्ट (GNU Coreutils) 8.15 पर Cygwin (8.15-1) द्वारा पैक किया है, और यह उम्मीद के
मुताबिक

जवाबों:


3

यह आपका लोकेल है, एक लोकेल सेटिंग के साथ अपने सॉर्ट कमांड को प्रीफ़िक्स करें जो आपके इच्छित कोलाज ऑर्डर को निर्दिष्ट करता है

$ cat test2.txt
a/d
a/a
a/c
a//c

$ sort test2.txt
a/a
a/c
a//c
a/d

$ LANG=C sort test2.txt
a//c
a/a
a/c
a/d

man sort कहते हैं

   *** WARNING *** The locale specified by the  environment  affects  sort
   order.  Set LC_ALL=C to get the traditional sort order that uses native
   byte values.

GNU कहते हैं

अधिकांश भाषा विशिष्ट स्थानों में टेबल होते हैं जो विराम चिह्नों को अनदेखा करने और मामले को मोड़ने के लिए सॉर्ट व्यवहार को निर्दिष्ट करते हैं। यह सबसे लंबे समय के कंप्यूटर उपयोगकर्ताओं के लिए सहज ज्ञान युक्त है!


ध्यान दें

यदि आपके लाखों URL में कोई भी गैर-ASCII वर्ण हैं (जो उन्हें वास्तव में IRI बना देगा ) तो आपको बाइट-मान सॉर्ट का उपयोग करके अवांछित परिणाम प्राप्त हो सकते हैं। आप इस मुद्दे से बचने के लिए URL-एन्कोडिंग का उपयोग कर सकते हैं ताकि URL को पढ़ने में मनुष्यों के लिए कठिन बना दिया जा सके।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.