首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用德国umlauts的util-linux外观

使用德国umlauts的util-linux外观
EN

Unix & Linux用户
提问于 2020-05-06 15:48:40
回答 1查看 286关注 0票数 1

我目前对util的look和德国的umlauts (äöü)有问题。出于测试目的,我设置了LC_ALL=de_DE.UTF-8

考虑一下german.dic

代码语言:javascript
复制
Aachen
Rindfleisch

UTF-8编码中:

代码语言:javascript
复制
 $ file german.dic
german.dic: UTF-8 Unicode text

如果我试图在/usr/bin/look中找到第二个单词,它会非常好地工作:

代码语言:javascript
复制
 $ look Rindf german.dic
Rindfleisch

即使我在单词look中添加了一个带有德语umlaut (D12)的单词,但仍如预期的那样工作:

代码语言:javascript
复制
 $ cat german.dic
Altäster
Rindfleisch
 $ look Rindf german.dic
Rindfleisch

但是,如果开头有一个带有umlaut的单词:

代码语言:javascript
复制
 $ cat german.dic
Ältester
Rindfleisch
 $ look Rindf german.dic

无论是大写还是小写,都无所谓。

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

EN

回答 1

Unix & Linux用户

发布于 2020-05-06 17:17:13

Stephen在评论中指出,bsdmainutils中没有出现这个bug。

我在跑步

代码语言:javascript
复制
Linux archlinux 5.6.10-arch1-1 #1 SMP PREEMPT Sat, 02 May 2020 19:11:54 +0000 x86_64 GNU/Linux

从2011年6月开始与util-linux合作。

的bsd版本的手册look中提到了以下内容:

输入文件必须用LC_COLLATE设置为‘C’排序。

look的util手册中没有这方面的内容。

在使用C语言环境进行排序时,对umlauts进行转义:

代码语言:javascript
复制
 $ LC_COLLATE=C sort german.dic
Rindfleisch
Ältester
ÖBB

(注意我是如何为测试目的添加一行的)。

如果我试图在这个文件中使用look,它的工作原理如下:

代码语言:javascript
复制
 $ 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

谢谢你的帮助!

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/584954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档