Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix排序字母数字字符和';组合的键:''/';_Unix_Sorting - Fatal编程技术网

Unix排序字母数字字符和';组合的键:''/';

Unix排序字母数字字符和';组合的键:''/';,unix,sorting,Unix,Sorting,我正在尝试使用UNIXsort命令(GNU 5.97或7.4)根据ASCII代码对文本文件进行排序。文件中的行只有一列,用作排序中的键 chr1:110170896:NM_004037:0:1:0/1 chr1:110170897:NM_004037:0:1:0/1 chr11:10325325:chr11:0:1:0/1 chr11::0325325:chr11:0:1:0/1 :的ascii码是58,1是49。但是,当我使用sort-k 1,1 temp.txt对文件进行排序时,输出如下:

我正在尝试使用UNIX
sort
命令(GNU 5.97或7.4)根据ASCII代码对文本文件进行排序。文件中的行只有一列,用作排序中的键

chr1:110170896:NM_004037:0:1:0/1
chr1:110170897:NM_004037:0:1:0/1
chr11:10325325:chr11:0:1:0/1
chr11::0325325:chr11:0:1:0/1
的ascii码是58,
1
是49。但是,当我使用
sort-k 1,1 temp.txt对文件进行排序时,输出如下:

chr11::0325325:chr11:0:1:0/1
chr1:110170896:NM_004037:0:1:0/1
chr1:110170897:NM_004037:0:1:0/1
chr11:10325325:chr11:0:1:0/1
从结果中,我不知道排序如何确定
1
之间的顺序。如果有固定的顺序,第一行和第四行应该放在一起

理想情况下,我希望根据ASCII码将密钥从左字符排序到右字符。

怎么样

 sort -t : -k 1 filename

使用:作为GNU排序手册页中的字段分隔符:

*警告*环境指定的区域设置会影响排序顺序。设置LC_ALL=C以获取使用本机字节值的传统排序顺序

在我的机器上使用
LC_ALL=C sort text
(其中
text
是我复制样本数据的文件)可以提供您想要的排序顺序


尽管……

sort
对区域设置敏感,但仍然没有解释为什么在原始示例中chr11没有一起排序。它将受到您的区域设置的影响

您应该尝试将语言设置为
C
以返回ASCII顺序

假设将其作为
LANG=C sort-k 1,1 temp.txt运行,或者设置环境变量

如果您需要解释错误顺序,最好给出您的locale/LANG环境以找出原因