sorting - 排序键似乎没有正确计算 utf8 字符
问题描述
我想tmp.txt
按位置 3 和 4 对以下(最小示例)文件的行进行排序(我的原始文件有不同数量的空格,所以我不能使用它)。
o Aa
á Ab
è Ba
f Bb
文件的编码是utf8。
prompt$ file -i tmp.txt
tmp.txt: text/plain; charset=utf-8
我的语言环境也是 utf8
prompt$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
不过,以下命令的输出不是我所期望的:
prompt$ cat tmp.txt | sort -R | sort --debug --key 1.3,1.4
sort: using ‘en_US.UTF-8’ sorting rules
á Ab
__
____
o Aa
__
____
è Ba
__
____
f Bb
__
____
我已经打开--debug
以可视化sort
正在做什么。它将特殊字符计为两个,因此键位置错误,如下划线所示。谁能告诉我,如何说服sort
将特殊字符仅计为一个?
prompt$ sort --version
sort --version
sort (GNU coreutils) 8.26
最好的,约瑟夫。
解决方案
推荐阅读
- c# - 仅使用字符串导航对象获取嵌套对象中的属性值
- android - 第一次在 Android 上启动 Unity 应用时,相机显示黑色
- git - 使用快速导出将 mercurial repo 转换为 git 时至少出现一个未命名的头部错误
- javascript - 我如何将金额输入字段设置为不可编辑和可编辑我正在使用 angularJS 编程语言
- android - 管理图像层次结构的最佳方法是什么?
- vb.net - Backgroundworker 给出多个错误信息
- java - 使用 mockito 和 spring mock 的 authowired bean 的模拟方法
- bash - 计算shell脚本中每一行的平均总和
- android - 如何解决此类错误,例如 UCrop.REQUEST_CROP == 69
- graphql - GraphQL:查询与另一个对象有关系的对象列表