Unix排序字母数字字符和';组合的键:''/';
我正在尝试使用UNIXUnix排序字母数字字符和';组合的键:''/';,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对文件进行排序时,输出如下:
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环境以找出原因