2013-04-04 2 views
6

कोई फ्रांसीसी लोकेल के साथ चरित्र के साथ सॉर्ट कमांड के व्यवहार की व्याख्या कर सकता है?सॉर्ट कमांड फ्रेंच लोकेल में उदासीन रूप से "œ" और "ओई" क्यों करता है?

$ file file.txt 
file.txt: UTF-8 Unicode text, with CRLF line terminators 

$ wc -l file.txt 
4 file.txt 

$ cat file.txt 
cœz 
coez 
coe 
cœ 

$ sort file.txt 
coe 
cœ 
cœz 
coez 

$ sort -d file.txt 
cœ 
coe 
coez 
cœz 

$ env | grep -P "(LC|FR)" 
LANG=fr_FR.UTF-8 

तथ्य यह है कि "ँ" कम या से अधिक है "ँ" एक नियमित तरह के मामले में यादृच्छिक लगता है, जबकि चरित्र बस एक शब्दकोश प्रकार (sort -d) के मामले में नजरअंदाज कर दिया है।

मुझे लगता है कि यह संयोजन के साथ कुछ करने के लिए है, लेकिन मुझे यहां कुछ अंतर्दृष्टि चाहिए।

+1

क्या आप वाकई फ्रेंच फ्रेल में हैं? 'LC_ALL' का मूल्य क्या है? – unwind

+0

मैं खिड़कियों के नीचे सिग्विन का उपयोग कर रहा हूं। एलसी_ALL खाली है। तथ्य यह है कि एक फ्रेंच लोकेल मेरा अनुमान है, मैं इसे कैसे देख सकता हूं? –

+0

यदि "œ" बिल्कुल "ओई" के बराबर है तो परिणामों को अस्थिरता द्वारा समझाया जा सकता है। देखें कि '-s' विकल्प कब दिया जाता है जब आपको क्या परिणाम मिलते हैं। –

उत्तर

1

शब्दकोश सॉर्टिंग "लगीचर को अनदेखा कर सकता है क्योंकि यह एसीआईआई में ए-जेए-जेड श्रेणी में नहीं है। (यह एक अनुमान है)।

फिर फ्रांसीसी लोकेल में, और ओई बराबर की तुलना करें, इसलिए उन्हें जो भी आदेश दिया गया था, उन्हें बाहर आना चाहिए, जो आपको लगता है कि ऐसा हो रहा है। यदि यह सही है, तो अगर आप इस में डाल दिया: (यदि फ़ाइल क्रमबद्ध किया जाता है की जाँच)

coe 
cœ 
cœm 
coem 
coep 
cœp 
cœz 
coez 

आप का उपयोग -c कर सकते हैं या -r (रिवर्स क्रम) के लिए विकल्प:

cœz 
coez 
cœm 
coem 
coep 
cœp 
coe 
cœ 

आप मिलना चाहिए इस अधिक मिलना।

+0

मैं शब्दकोश सॉर्टवेयर के लिए सहमत हूं। लेकिन मैं इस बात से सहमत नहीं हूं कि क्यों और ओ बराबर की तुलना करेंगे, और मुझे आश्चर्य है कि यह व्यवहार क्यों चुना गया है। क्या किसी को यह पता है? –

+1

@btoueg, सॉर्ट फ़ंक्शन का व्यवहार पूर्व-मौजूदा सम्मेलन से मेल खाना है, इसे कार्यान्वयनकर्ता द्वारा नहीं चुना गया था। अनिवार्य रूप से क्योंकि 'œ' और' ओ 'एक ही चीज़ लिखने के दो अलग-अलग तरीके हैं - यह भाषा अंतर से अधिक टाइपोग्राफ़िकल अंतर है। – Ben

+0

दरअसल, लिगरेचर वर्णों को शब्दकोश में उदासीन रूप से आदेश दिया जाता है: http://fr.wikipedia.org/wiki/Classement_alphab%C3%A9tique#Ligatures_et_majuscules हालांकि, आप देख सकते हैं कि अंतिम उच्चारण वाले वर्ण क्रमबद्ध हैं: http: // en.wikipedia.org/wiki/Alphabetical_order#Language-specific_conventions क्या मजाकिया बात यह है कि जब आपके पास डुप्लिकेट होता है, जो किसी शब्दकोश में नहीं होता है, तो ऑर्डर कंप्यूटर के लिए पूरी तरह यादृच्छिक हो जाता है। यह ऐसा व्यवहार नहीं है जिसे आप चाहते हैं, क्योंकि यह एक ऐसी जानकारी है जिसे आप लाभ उठा सकते हैं, उदाहरण के लिए वर्तनी। –

संबंधित मुद्दे