gpt4 book ai didi

shell - tr [:upper:] [:lower:] with Cyrillic text

转载 作者:行者123 更新时间:2023-12-03 20:49:14 25 4
gpt4 key购买 nike

我正在尝试从俄语短篇小说中提取单词列表。

#!/bin/sh

export LC_ALL=ru_RU.utf8

sed -re 's/\s+/\n/g' | \
sed 's/[\.!,—()«»;:?]//g' | \
tr '[:upper:]' '[:lower:]' | \
sort | uniq

然而 tr step 不是小写西里尔大写字母。我以为我使用可移植字符类很聪明!
$ LC_ALL=ru_RU.utf8 echo "Г" | tr [:upper:] [:lower:]
Г

如果相关,我通过从 Chrome 浏览器窗口复制粘贴到 Vim 中获得了俄文文本。它在屏幕上看起来很正确(Putty 终端)。这是在 Cygwin 的 bash shell 中——它应该与 Linux 上的 Bash 相同(应该!)。

什么是在管道中小写 unicode 文本的可移植、可靠的方法?

最佳答案

这是我在 Wikipedia 发现的(虽然没有任何引用):

Most versions of tr, including GNU tr and classic Unix tr, operate on single-byte characters and are not Unicode compliant. An exception is the Heirloom Toolchest implementation, which provides basic Unicode support.



另外, this旧但相关。

正如我在评论中提到的, sed似乎工作( GNU sed ,至少):
$ echo 'СТЭК' | sed 's/[[:upper:]]*/\L&/'
стэк

关于shell - tr [:upper:] [:lower:] with Cyrillic text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13381746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com