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

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


使用:作为字段分隔符

08-04 22:18