小编TDi*_*ckx的帖子

意外的bash排序行为

如果我创建包含以下行的文本文件:

>TESTTEXT_10000000
>TESTTEXT_1000000
>TESTTEXT_10000002
>TESTTEXT_10000001
Run Code Online (Sandbox Code Playgroud)

并执行sort myfile,我的输出是

>TESTTEXT_1000000
>TESTTEXT_10000000
>TESTTEXT_10000001
>TESTTEXT_10000002
Run Code Online (Sandbox Code Playgroud)

但是,如果我将/ 1和/ 2附加到我的行,则排序输出会发生巨大变化,我不知道为什么.

输入:

>TESTTEXT_10000000/1
>TESTTEXT_1000000/1
>TESTTEXT_10000002/1
>TESTTEXT_10000001/1
Run Code Online (Sandbox Code Playgroud)

输出:

>TESTTEXT_10000000/1
>TESTTEXT_1000000/1
>TESTTEXT_10000001/1
>TESTTEXT_10000002/1
Run Code Online (Sandbox Code Playgroud)

输入:

>TESTTEXT_10000000/2
>TESTTEXT_1000000/2
>TESTTEXT_10000002/2
>TESTTEXT_10000001/2
Run Code Online (Sandbox Code Playgroud)

输出:

>TESTTEXT_10000000/2
>TESTTEXT_10000001/2
>TESTTEXT_1000000/2
>TESTTEXT_10000002/2
Run Code Online (Sandbox Code Playgroud)

正斜线被认为是分离器吗?使用--field-sperator并没有改变行为.如果是这样,为什么在1000002/2和1000002/2条目之间是1000000/2?使用人类排序,数字排序或其他选项从未带来一致性.有人可以帮我从这里出去吗?

:编辑:因为它似乎是相关的,考虑到答案,这台机器上的LC_ALL值是 en_GB.UTF-8

sorting bash

5
推荐指数
1
解决办法
150
查看次数

标签 统计

bash ×1

sorting ×1