如果我创建包含以下行的文本文件:
>TESTTEXT_10000000 >TESTTEXT_1000000 >TESTTEXT_10000002 >TESTTEXT_10000001
并执行sort myfile,我的输出是
>TESTTEXT_1000000 >TESTTEXT_10000000 >TESTTEXT_10000001 >TESTTEXT_10000002
但是,如果我将/ 1和/ 2附加到我的行,则排序输出会发生巨大变化,我不知道为什么.
输入:
>TESTTEXT_10000000/1 >TESTTEXT_1000000/1 >TESTTEXT_10000002/1 >TESTTEXT_10000001/1
输出:
>TESTTEXT_10000000/1 >TESTTEXT_1000000/1 >TESTTEXT_10000001/1 >TESTTEXT_10000002/1
输入:
>TESTTEXT_10000000/2 >TESTTEXT_1000000/2 >TESTTEXT_10000002/2 >TESTTEXT_10000001/2
输出:
>TESTTEXT_10000000/2 >TESTTEXT_10000001/2 >TESTTEXT_1000000/2 >TESTTEXT_10000002/2
正斜线被认为是分离器吗?使用–field-sperator并没有改变行为.如果是这样,为什么在1000002/2和1000002/2条目之间是1000000/2?使用人类排序,数字排序或其他选项从未带来一致性.有人可以帮我从这里出去吗?
:编辑:
因为它似乎是相关的,考虑到答案,这台机器上LC_ALL的值是en_GB.UTF-8
/在您的语言环境中为0之前.使用LC_ALL = C或其他语言环境将不会改变任何内容.
在您的用例中,您可以正确使用-Version排序:
sort -V myfile
您可以选择指定要排序的分隔符和键:
sort -t/ -k1,1 myfile
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。