के साथ मैं एक रूसी लघु कहानी से एक शब्द सूची निकालने की कोशिश कर रहा हूं।tr [: ऊपरी:] [: निचला:] सिरिलिक पाठ
#!/bin/sh
export LC_ALL=ru_RU.utf8
sed -re 's/\s+/\n/g' | \
sed 's/[\.!,—()«»;:?]//g' | \
tr '[:upper:]' '[:lower:]' | \
sort | uniq
हालांकि
tr
कदम सिरिलिक बड़े अक्षरों lowercasing नहीं है
। मैंने सोचा कि मैं पोर्टेबल चरित्र वर्गों का उपयोग कर चालाक था!
$ LC_ALL=ru_RU.utf8 echo "Г" | tr [:upper:] [:lower:]
Г
यदि यह प्रासंगिक है, तो मैंने क्रोम ब्राउज़र विंडो से कॉपी-पेस्टिंग द्वारा रूसी पाठ प्राप्त किया है। यह स्क्रीन पर सही दिखता है (एक पुटी टर्मिनल)। यह सिगविन के बैश खोल में है - इसे लिनक्स पर समान रूप से काम करना चाहिए (चाहिए!)।
एक पाइप में यूनिकोड टेक्स्ट को कम करने के लिए एक पोर्टेबल, विश्वसनीय तरीका क्या है?
रूपांतरण:
मैं टिप्पणी में उल्लेख किया है,
sed
काम करने के लिए (GNU sed
, कम से कम) लगता है' गूंज 'СТЭК' | sed's/[[: ऊपरी:]] */\ एल और/'' –' गूंज "जी" | tr [: ऊपरी:] [: निचला:] 'आउटपुट "г" ठीक से मैक ओएस एक्स 10.8 सिस्टम पर। – ulidtko
धन्यवाद @LevLevitsky। यह मेरे लिए एक उपयुक्त फिक्स है (इसे उत्तर में प्रचारित करने के लिए स्वतंत्र महसूस करें)। मुझे आश्चर्य है कि क्यों tr काम नहीं करता है। – slim