gpt4 book ai didi

shell - linux排序意外输出

转载 作者:行者123 更新时间:2023-12-01 09:36:37 29 4
gpt4 key购买 nike

我使用排序文件

ABCAB-CABCDEFG-HI

我明白了

ABCAB-CABCDEFG-HI

为什么 sort 以这种方式排序字符串?我如何让它按字母顺序排序'-'?

最佳答案

@cnicutar 提供的解决方案是正确的,但原因需要解释,这就是我给出新答案的原因。

在与@cnicutar 讨论后,最后我怀疑coreutils 的sort 中存在错误,我发现this sorting behavior is expected :

At that point sort appears broken because case is folded and punctuation is ignored because ‘en_US.UTF-8’ specifies this behavior.

所以对于 sort,您的输入似乎映射如下:

ABC -> ABC
AB-C -> ABC
ABCDEFG-HI -> ABCDEFGHI

如果要纯ASCII排序,需要调用LC_ALL=C sort(调用sort时临时设置locale为C表示没有本地化的“标准”行为;您也可以使用 POSIX 代替 C)。

在其他 Unix 上,这种行为似乎有所不同(在 Mac OS X 上测试,其中用户空间工具源自 FreeBSD),但 LC_ALL=C 排序 应该在所有 POSIX 系统中产生相同的行为。

关于shell - linux排序意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6531674/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com