当我试图用sort test.txt
对下列文本进行排序时
test.txt
fadf
basdf
asdfa
asdf
tasdf
gasdf
$
$ asdf
$ basd
$ asfd
$sdfa
$asdf
产出如下:
$
asdf
$asdf
$ asdf
asdfa
$ asfd
$ basd
basdf
fadf
gasdf
$sdfa
tasdf
顺便说一下,在我的mac上,输出是:
$
$ asdf
$ asfd
$ basd
$asdf
$sdfa
asdf
asdfa
gasdf
sdf
tasdf
我认为结果是奇怪的,除了$符号的位置,甚至"asdf“和"asdfa”用$行分隔。
为什么这些钱不在一起?以及如何将它们组合在一起(或如何根据ASCII进行排序)?这是个虫子吗?
)我找了很久了。非常感谢~)
Linux: 14.04.1 LTS,可靠的Tahr排序:(GNU coreutils) 8.21
发布于 2015-11-14 08:08:13
出现意外排序的原因是排序规则。
要查看当前的规则是什么,请键入
sort --debug sortfile
例如,在我的笔记本电脑上
sort: using ‘en_ZA.UTF-8’ sorting rules
$
_
asdf
____
$asdf
_____
$ asdf
______
asdfa
_____
$ asfd
因此,它使用的配置使用我的地区,这将包括规则,以了解货币等。
若要忽略这一点,请将排序规则更改为遗留排序规则C。
LC_COLLATE=C sort sortfile
$
$ asdf
$ asfd
$ basd
$asdf
$sdfa
asdf
asdfa
basdf
fadf
gasdf
tasdf
如果要设置永久设置,可以在bashrc文件中设置区域设置,但这可能会影响文件列表等其他内容。
https://stackoverflow.com/questions/33709966
复制相似问题