排序和Uniq

时间:2015-06-29 14:16:35

标签: linux sorting uniq

我有一个文件,我试图根据第四列进行排序,并删除基于该列的重复行。使用sort -uk4,4后,我的文件看起来像这样:

chr1    76190472    76190502    NM_000016_cds_0_0_chr1_76190473_f   0   +
chr1    76226806    76227055    NM_000016_cds_10_0_chr1_76226807_f  0   +
chr1    76228376    76228448    NM_000016_cds_11_0_chr1_76228377_f  0   +
chr1    76194085    76194173    NM_000016_cds_1_0_chr1_76194086_f   0   +
chr1    76198328    76198426    NM_000016_cds_2_0_chr1_76198329_f   0   +
chr1    76198537    76198607    NM_000016_cds_3_0_chr1_76198538_f   0   +
chr1    76199212    76199313    NM_000016_cds_4_0_chr1_76199213_f   0   +
chr1    76200475    76200556    NM_000016_cds_5_0_chr1_76200476_f   0   +
chr1    76205664    76205795    NM_000016_cds_6_0_chr1_76205665_f   0   +
chr1    76211490    76211599    NM_000016_cds_7_0_chr1_76211491_f   0   +
chr1    76215103    76215244    NM_000016_cds_8_0_chr1_76215104_f   0   +
chr1    76216135    76216231    NM_000016_cds_9_0_chr1_76216136_f   0   +

但是,函数没有按照我的喜好排序,因为在第四列_cds_之后我想按降序排列数字:0,1,2,3 ...等而不是0 ,10,11,1。有没有办法做这样的事情?

2 个答案:

答案 0 :(得分:2)

您的要求对我来说并不完全清楚,但您可能想要这样:

sort -k4n file

-n使用数字顺序进行排序。

答案 1 :(得分:0)

您可以只提取该数字,将其放入新的(整数)变量中,然后根据该变量进行排序。我认为问题是,现在这个数字只是一个字符串的一部分。