这个问题是通过询问Chromium 浏览器不允许为“打印到文件”设置默认纸张大小的问题
以及在聊天中与@Gilles 进行对话而激发的。正如@don_crissti 所指出的,并经我证实,更改语言环境(至少LC_PAPER
)会影响选择的纸张尺寸。
我从来没有想过要选择什么,而且总是选择,en_US.UTF-8
因为这似乎是一个合理的默认选择。
但是,根据聊天中的@Gilles(请参阅从http://chat.stackexchange.com/transcript/message/17017095#17017095开始的对话)。摘录:
吉尔斯:LC_PAPER 默认为 $LANG
吉尔斯:你必须有 LANG=en_US.UTF-8。这是一个坏主意:它设置了 LC_COLLATE 而这几乎总是一件坏事
Gilles:LC_COLLATE 没有描述正确的排序规则,它太严格了(它逐个字符)删除 LANG 而是设置 LC_CTYPE 和 LC_PAPER
Gilles:加上 LC_MESSAGES 如果你想要非英语的消息
显然,这里有一些我不知道的问题,我相信还有很多其他问题。那么,在设置语言环境时应该考虑哪些问题,又应该如何设置呢?我一直只是dpkg-reconfigure locales
在 Debian 中运行,并没有三思而后行。
具体问题:我应该将语言环境设置为 en_IN.UTF-8 吗?这样做有什么缺点吗?
今天,我想保留包含汉字的文件中的唯一行。我决定使用该sort
实用程序,因为我熟悉该工具,并且删除文件中的重复行就像使用该-u
标志一样简单。我了解到我需要更改区域设置才能sort
正确使用中文字符。我注意到使用不同的区域设置会sort
产生不同的行为。在这篇文章中,我展示了我的发现。
我知道删除文件中重复行的任务可以使用多种工具/编程语言来完成。虽然我感谢任何建议完成该任务的工具的人,但我更感兴趣的是了解有关语言环境的更多信息以及它们如何影响 Unix 实用程序。
\n\n以下是我的系统的区域设置。
\nlocale\n
Run Code Online (Sandbox Code Playgroud)\nLANG=en_US.UTF-8\nLC_CTYPE="en_US.UTF-8"\nLC_NUMERIC="en_US.UTF-8"\nLC_TIME="en_US.UTF-8"\nLC_COLLATE="en_US.UTF-8"\nLC_MONETARY="en_US.UTF-8"\nLC_MESSAGES="en_US.UTF-8"\nLC_PAPER="en_US.UTF-8"\nLC_NAME="en_US.UTF-8"\nLC_ADDRESS="en_US.UTF-8"\nLC_TELEPHONE="en_US.UTF-8"\nLC_MEASUREMENT="en_US.UTF-8"\nLC_IDENTIFICATION="en_US.UTF-8"\nLC_ALL=\n
Run Code Online (Sandbox Code Playgroud)\n考虑以下名为main.txt
\xe4\x94\x8d\n\xe4\x8f\x9d\n
Run Code Online (Sandbox Code Playgroud)\nen_US.UTF-8
如果我尝试使用作为我的排序$LANG
对其进行排序。我失去了行号。2
sort -u main.txt\n
Run Code Online (Sandbox Code Playgroud)\n\xe4\x94\x8d\n
Run Code Online (Sandbox Code Playgroud)\nLANG
我已经通过设置解决了这个问题zh_CN.UTF-8
。
export LANG=zh_CN.UTF-8\nsort -u main.txt\n
Run Code Online (Sandbox Code Playgroud)\n\xe4\x94\x8d\n\xe4\x8f\x9d\n
Run Code Online (Sandbox Code Playgroud)\n我在 Stack Overflow …
我试图将美国和英国词典合并成一个大词典,并且我试图从超集中删除所有重复项,但似乎 uniq 没有输出诸如“épée”或单个字母之类的词。
这是我尝试使用的:
LC_COLLATE=en_US.UTF-8 cat american-english british-english |sort|uniq -u > unique_sorted_combined_dict
Run Code Online (Sandbox Code Playgroud)
如果我只是这样做:
LC_COLLATE=en_US.UTF-8 cat american-english british-english |sort > sorted_combined_dict
Run Code Online (Sandbox Code Playgroud)
“épée”和其他这样的词确实出现了,以及单个字母。
有什么我在这里想念的uniq
吗?
我应该注意到我在 Ubuntu 12.10 上使用来自 GNU coreutils 的 uniq,如果这有什么不同的话。