क्या गुन्नू कोरुटिल्स टूट गया है?


10

सॉर्ट करने के लिए निम्न इनपुट पर विचार करें:

cat > foo <<EOM
D,,5014978
DD,,25
D,I,1972765530
D,Y,4223624
-,Y,71285059
YA,I,2
EOM

अब दौड़ने की कोशिश करो sort foo

मेरे किसी भी बॉक्स बॉक्स (gnu coreutils संस्करण 6.9-7.4) पर यह कोशिश करने पर आउटपुट सॉर्ट नहीं किया जाता है। आउटपुट को सॉर्टविन (gnu coretuils 8.5) के तहत चलाया जाता है। टिप्पणियाँ?

जवाबों:


18

छंटाई स्थानीय पर निर्भर करती है; विशेष रूप से, यह निर्भर करता है $LC_COLLATE(संभवतः द्वारा ओवरराइड किया गया $LC_ALL), वापस गिरने पर $LANGअगर यह मौजूद नहीं है। कमांड localeआपको दिखाएगा कि आप किन मूल्यों के साथ प्रभावी ढंग से काम कर रहे हैं। देखें man 3 strcoll, man 3 setlocaleआदि।

LC_COLLATE=C(या POSIXबिल्कुल भी नहीं) एक सख्त बाइट-बाइट तुलना में परिणाम।

LC_COLLATE=en_US.utf8 एक वर्णानुक्रम-समतुल्य प्रकार में परिणाम, विराम चिह्नों के साथ और समान समतुल्य वर्ग के भीतर वर्ण समान रूप से व्यवहार किए जाते हैं।


वास्तव में, export LC_COLLATE=Cउम्मीद के
मुताबिक

3
उच्चारण पूरी तरह से नजरअंदाज नहीं किए जाते हैं। पहलेStephane छाँटें , लेकिन बाद में छाँटें । के बराबर है (जैसे , , ...), लेकिन बराबर हैं, तो उन लोगों के बीच क्रम में अच्छी तरह से परिभाषित किया गया है। यह एक अच्छे पुराने पेपर शब्दकोश में समान है। StéphaneStephanieStéphaneéeêë
स्टीफन चेज़लस

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