gpt4 book ai didi

linux - 为什么在未设置 "sort"时 "LANG"行为异常?

转载 作者:太空宇宙 更新时间:2023-11-04 10:57:39 24 4
gpt4 key购买 nike

在我的 bash 中,“LANG”设置为“en_us.UTF-8”,“sort”工作正常。但是,如果我取消设置“LANG”,那么“排序”就会很奇怪。即使使用“LC_ALL=C”或“LC_ALL=POSIX”。有人知道为什么在未设置“LANG”时“排序”不起作用吗?

$ echo $LANG
en_US.UTF-8

$ sort -t$'\t' -k1,3 -gr
-4.445905 1 0.965933
-4.445905 1 0.76126
-4.445905 1 0.74816
-4.445905 1 0.633251
-4.445905 1 0.596921
-4.445905 1 0.464271
-4.445905 1 0.406553
-4.445905 1 0.350968
-4.445905 1 0.307701
-4.445905 1 0.188411
-4.445905 1 0.0377354
-4.445905 1 0.0221152
-4.445905 -1 0.999663
-4.445905 -1 0.987287
-4.445905 -1 0.97882
-4.445905 -1 0.969835
-4.445905 -1 0.96705
-4.445905 -1 0.964982
-4.445905 -1 0.920791
-4.445905 -1 0.901001
-4.445905 -1 0.877351
-4.445905 -1 0.87702

-4.445905 -1 0.999663
-4.445905 -1 0.987287
-4.445905 -1 0.97882
-4.445905 -1 0.969835
-4.445905 -1 0.96705
-4.445905 1 0.965933
-4.445905 -1 0.964982
-4.445905 -1 0.920791
-4.445905 -1 0.901001
-4.445905 -1 0.877351
-4.445905 -1 0.87702
-4.445905 1 0.76126
-4.445905 1 0.74816
-4.445905 1 0.633251
-4.445905 1 0.596921
-4.445905 1 0.464271
-4.445905 1 0.406553
-4.445905 1 0.350968
-4.445905 1 0.307701
-4.445905 1 0.188411
-4.445905 1 0.0377354
-4.445905 1 0.0221152

$ unset LANG

$ sort -t$'\t' -k1,3 -gr
-4.445905 1 0.965933
-4.445905 1 0.76126
-4.445905 1 0.74816
-4.445905 1 0.633251
-4.445905 1 0.596921
-4.445905 1 0.464271
-4.445905 1 0.406553
-4.445905 1 0.350968
-4.445905 1 0.307701
-4.445905 1 0.188411
-4.445905 1 0.0377354
-4.445905 1 0.0221152
-4.445905 -1 0.999663
-4.445905 -1 0.987287
-4.445905 -1 0.97882
-4.445905 -1 0.969835
-4.445905 -1 0.96705
-4.445905 -1 0.964982
-4.445905 -1 0.920791
-4.445905 -1 0.901001
-4.445905 -1 0.877351
-4.445905 -1 0.87702

-4.445905 1 0.965933
-4.445905 1 0.76126
-4.445905 1 0.74816
-4.445905 1 0.633251
-4.445905 1 0.596921
-4.445905 1 0.464271
-4.445905 1 0.406553
-4.445905 1 0.350968
-4.445905 1 0.307701
-4.445905 1 0.188411
-4.445905 1 0.0377354
-4.445905 1 0.0221152
-4.445905 -1 0.999663
-4.445905 -1 0.987287
-4.445905 -1 0.97882
-4.445905 -1 0.969835
-4.445905 -1 0.96705
-4.445905 -1 0.964982
-4.445905 -1 0.920791
-4.445905 -1 0.901001
-4.445905 -1 0.877351
-4.445905 -1 0.87702

$ LC_ALL=POSIX sort -t$'\t' -k1,3 -gr
-4.445905 1 0.965933
-4.445905 1 0.76126
-4.445905 1 0.74816
-4.445905 1 0.633251
-4.445905 1 0.596921
-4.445905 1 0.464271
-4.445905 1 0.406553
-4.445905 1 0.350968
-4.445905 1 0.307701
-4.445905 1 0.188411
-4.445905 1 0.0377354
-4.445905 1 0.0221152
-4.445905 -1 0.999663
-4.445905 -1 0.987287
-4.445905 -1 0.97882
-4.445905 -1 0.969835
-4.445905 -1 0.96705
-4.445905 -1 0.964982
-4.445905 -1 0.920791
-4.445905 -1 0.901001
-4.445905 -1 0.877351
-4.445905 -1 0.87702

-4.445905 1 0.965933
-4.445905 1 0.76126
-4.445905 1 0.74816
-4.445905 1 0.633251
-4.445905 1 0.596921
-4.445905 1 0.464271
-4.445905 1 0.406553
-4.445905 1 0.350968
-4.445905 1 0.307701
-4.445905 1 0.188411
-4.445905 1 0.0377354
-4.445905 1 0.0221152
-4.445905 -1 0.999663
-4.445905 -1 0.987287
-4.445905 -1 0.97882
-4.445905 -1 0.969835
-4.445905 -1 0.96705
-4.445905 -1 0.964982
-4.445905 -1 0.920791
-4.445905 -1 0.901001
-4.445905 -1 0.877351
-4.445905 -1 0.87702

最佳答案

显然我没有正确理解排序键选项“-k”。它实际上是“从POS1到POS2包括”,所以“-k 1,3”表示使用key column1+column2+column3排序。因此,后两个“排序”正在做正确的事情,而第一个实际上很奇怪。

关于linux - 为什么在未设置 "sort"时 "LANG"行为异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28249666/

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