带有德语变音符号的 util-linux 外观

带有德语变音符号的 util-linux 外观

我目前在使用 util-linuxlook与德语元音变音 ( ä, ö, ü) 时遇到问题。出于测试目的,我设置了LC_ALL=de_DE.UTF-8.

考虑german.dic

Aachen
Rindfleisch

UTF-8编码中:

 $ file german.dic
german.dic: UTF-8 Unicode text

如果我尝试用 找到第二个单词/usr/bin/look,它工作得很好:

 $ look Rindf german.dic
Rindfleisch

ä即使我在单词中添加带有德语元音变音 ( ) 的单词,该单词look仍然可以按预期工作:

 $ cat german.dic
Altäster
Rindfleisch
 $ look Rindf german.dic
Rindfleisch

然而,如果有一个单词开头带有变音符号:

 $ cat german.dic
Ältester
Rindfleisch
 $ look Rindf german.dic

变音符号是大写还是小写并不重要。

我也尝试过设置LC_ALL=de_DE.UTF-8(它肯定安装在我的系统上),但没有用。

答案1

Stephen Kitt 在评论中建议,这个错误不会出现在bsdmainutils.

我在跑步

Linux archlinux 5.6.10-arch1-1 #1 SMP PREEMPT Sat, 02 May 2020 19:11:54 +0000 x86_64 GNU/Linux

util-linux2011 年 6 月开始。

bsd 版本的联机帮助页look提到以下内容:

输入文件必须在 LC_COLLATE 设置为“C”的情况下进行排序。

的 util-linux 联机帮助页中没有关于此的行look

当使用C区域设置排序时,元音变音会被转义:

 $ LC_COLLATE=C sort german.dic
Rindfleisch
Ältester
ÖBB

(请注意我如何添加以 Ö 开头的行以进行测试)。

如果我尝试look在这个文件中,它会按预期工作:

 $ LC_COLLATE=C sort german.dic -o german.dic
 $ cat german.dic
Rindfleisch
Ältester
 $ look Rindf german.dic
Rindfleisch
 $ look Ält german.dic
Ältester
 $ look Ö german.dic
ÖBB

谢谢您的帮助!

相关内容