社区首页 >问答首页 >当遇到$(美元符号)时,出现奇怪的Linux排序结果

当遇到$(美元符号)时,出现奇怪的Linux排序结果
EN

Stack Overflow用户
提问于 2015-11-14 07:26:52
回答 1查看 272关注 0票数 1

当我试图用sort test.txt对下列文本进行排序时

test.txt

代码语言:javascript
代码运行次数:0
复制
fadf
basdf
asdfa
asdf
tasdf
gasdf
$
$ asdf
$ basd
$ asfd
$sdfa
$asdf

产出如下:

代码语言:javascript
代码运行次数:0
复制
$
asdf
$asdf
$ asdf
asdfa
$ asfd
$ basd
basdf
fadf
gasdf
$sdfa
tasdf

顺便说一下,在我的mac上,输出是:

代码语言:javascript
代码运行次数:0
复制
$
$ asdf
$ asfd
$ basd
$asdf
$sdfa
asdf
asdfa
gasdf
sdf
tasdf

我认为结果是奇怪的,除了$符号的位置,甚至"asdf“和"asdfa”用$行分隔。

为什么这些钱不在一起?以及如何将它们组合在一起(或如何根据ASCII进行排序)?这是个虫子吗?

)我找了很久了。非常感谢~)

Linux: 14.04.1 LTS,可靠的Tahr排序:(GNU coreutils) 8.21

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-14 08:08:13

出现意外排序的原因是排序规则。

要查看当前的规则是什么,请键入

代码语言:javascript
代码运行次数:0
复制
sort  --debug sortfile

例如,在我的笔记本电脑上

代码语言:javascript
代码运行次数:0
复制
sort: using ‘en_ZA.UTF-8’ sorting rules

$
_
asdf
____
$asdf
_____
$ asdf
______
asdfa
_____
$ asfd

因此,它使用的配置使用我的地区,这将包括规则,以了解货币等。

若要忽略这一点,请将排序规则更改为遗留排序规则C。

代码语言:javascript
代码运行次数:0
复制
 LC_COLLATE=C sort  sortfile 
$
$ asdf
$ asfd
$ basd
$asdf
$sdfa
asdf
asdfa
basdf
fadf
gasdf
tasdf

如果要设置永久设置,可以在bashrc文件中设置区域设置,但这可能会影响文件列表等其他内容。

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

https://stackoverflow.com/questions/33709966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文