排序和 Uniq

Sorting and 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。有什么办法可以做这样的事情吗?

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

我不太清楚你的要求,但你可能想要这个:

sort -k4n file

-n 使用 数字 顺序排序。