繁体   English   中英

Linux排序错误

[英]Linux Sort in wrong order

我在这样的输入上运行时使用Linux Sort存在问题:

07TLF\1\1\10040
07TLF\1\1\10060
07TLF03\10060
07TLF03\10080
07TLF\1\1\10320
07TLF\1\1\10360
07TLFS\10280

(\\ 1是Ctrl + A字符)。 如您所见,第三和第四行是错误的(应该是第五和第六行)。 如果我使用LC_COLLATE = C,一切都会顺利进行! 但是在其他类似情况下,即使我使用其他LC_COLLATE,排序也可以。

system call, but also running in bash I have the same behavier. 我在使用系统调用的C程序中使用sort,但是在bash中运行我也具有相同的行为。

你能帮助我吗? 谢谢

从排序(1)的联机帮助页中:

NAME
       sort - sort lines of text files

我不认为Ctrl + A是任何称为“文本文件”的文件的一部分。 如果您有特殊要求(如对特殊字符进行排序),则必须使用满足要求的实用程序,或者如果不存在,则可以自己实现。

由于没有特殊字符的“自然顺序”,因此您必须定义所需的顺序。 您可以设置语言环境以使其按照此处定义的规则进行排序,或者,如果没有任何一种语言环境与您的要求相匹配,则您必须实现自己的排序算法。

顺便说一句:如果可以避免,使用系统根本不是个好主意。 您可能永远都不知道目标系统上安装了哪种版本的排序以及使用了哪些规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM