Bash 以非拉丁字母开头的大写单词

Bash uppercase words that start with non-latin letters

我想将文件中每一行的第一个单词大写。为此,我可以使用以下命令之一:

sed 's/^./\u&/'

sed -E 's/[[:alpha:]]+/\u&/1'

但是,这些命令不会大写以非拉丁字母开头的单词,例如 ängstlich.

我尝试导出 LC_ALL=C,但这并没有解决问题。

如何解决这个问题?

我建议:

echo "ängstlich" | LC_ALL=de_DE.UTF-8 sed -E 's/[[:alpha:]]+/\u&/1'

输出:

Ängstlich