我正在尝试从俄罗斯短篇小说中提取单词列表。
#!/bin/sh
export LC_ALL=ru_RU.utf8
sed -re 's/\s+/\n/g' | \
sed 's/[\.!,—()«»;:?]//g' | \
tr '[:upper:]' '[:lower:]' | \
sort | uniq
但是,该tr
步骤不是将西里尔大写字母小写。我以为我很聪明地使用了可移植的字符类!
$ LC_ALL=ru_RU.utf8 echo "Г" | tr [:upper:] [:lower:]
Г
如果它是相关的,我通过从 Chrome 浏览器窗口复制粘贴到 Vim 来获得俄语文本。它在屏幕上看起来很正确(Putty 终端)。这是在 Cygwin 的 bash shell 中——它应该与 Linux 上的 Bash 相同(应该!)。
什么是在管道中小写 unicode 文本的便携、可靠的方法?