Shell 将字母数字列和数字列一起排序

Shell 将字母数字列和数字列一起排序,shell,sorting,Shell,Sorting,我有一个文件,其中我需要对E索引进行排序,然后再对I索引进行排序,这样文件,我有很多这样的索引,不仅仅是下面提到的索引: **chr3 148813677 148815677 ENSG00000071794:I1 -** chr3 148804104 148804291 ENSG00000071794:E1 - chr3 148804291 148804292 ENSG00000071794:E1 - chr3 148804292 14880

我有一个文件,其中我需要对E索引进行排序,然后再对I索引进行排序,这样文件,我有很多这样的索引,不仅仅是下面提到的索引:

**chr3  148813677   148815677   ENSG00000071794:I1  -**
chr3    148804104   148804291   ENSG00000071794:E1  -
chr3    148804291   148804292   ENSG00000071794:E1  -
chr3    148804292   148804309   ENSG00000071794:E1  -
chr3    148804309   148804317   ENSG00000071794:E1  -
chr3    148804317   148804341   ENSG00000071794:E1  -
chr3    148802469   148802676   ENSG00000071794:E2  -
chr3    148801419   148801522   ENSG00000071794:E3  -
chr3    148793668   148793834   ENSG00000071794:E4  -
chr3    148792002   148792135   ENSG00000071794:E5  -
chr3    148791012   148791109   ENSG00000071794:E6  -
chr3    148789370   148789444   ENSG00000071794:E7  -
chr3    148802677   148804103   ENSG00000071794:I1  -
chr3    148801523   148802468   ENSG00000071794:I2  -
chr3    148793835   148801418   ENSG00000071794:I3  -
chr3    148792136   148793667   ENSG00000071794:I4  -
chr3    148791110   148792001   ENSG00000071794:I5  -
chr3    148789445   148791011   ENSG00000071794:I6  -
chr3    148789231   148789369   ENSG00000071794:I7  -
变成

 chr3   148789231   148789369   ENSG00000071794:I7  -
 chr3   148789370   148789444   ENSG00000071794:E7  -
 chr3   148789445   148791011   ENSG00000071794:I6  -
 chr3   148791012   148791109   ENSG00000071794:E6  -
 chr3   148791110   148792001   ENSG00000071794:I5  -
 chr3   148792002   148792135   ENSG00000071794:E5  -
 chr3   148792136   148793667   ENSG00000071794:I4  -
 chr3   148793668   148793834   ENSG00000071794:E4  -
 chr3   148793835   148801418   ENSG00000071794:I3  -
 chr3   148801419   148801522   ENSG00000071794:E3  -
 chr3   148801523   148802468   ENSG00000071794:I2  -
 chr3   148802469   148802676   ENSG00000071794:E2  -
 chr3   148802677   148804103   ENSG00000071794:I1  -
 chr3   148802677   148804103   ENSG00000071794:I1  -
 chr3   148804104   148804291   ENSG00000071794:E1  -
 chr3   148804291   148804292   ENSG00000071794:E1  -
 chr3   148804292   148804309   ENSG00000071794:E1  -
 chr3   148804309   148804317   ENSG00000071794:E1  -
 chr3   148804317   148804341   ENSG00000071794:E1  -
通过删除每行第2列和第3列之间不连续的任何重复ID(在本例中为第一行粗体)。简言之,我想根据ID对行进行排序,尤其是“:”之后的所有内容,以及第2列和第3列中的位置

$ sort -k 4,3 my_file 

chr3    148789231   148789369   ENSG00000071794:I7  -
chr3    148789370   148789444   ENSG00000071794:E7  -
chr3    148789445   148791011   ENSG00000071794:I6  -
chr3    148791012   148791109   ENSG00000071794:E6  -
chr3    148791110   148792001   ENSG00000071794:I5  -
chr3    148792002   148792135   ENSG00000071794:E5  -
chr3    148792136   148793667   ENSG00000071794:I4  -
chr3    148793668   148793834   ENSG00000071794:E4  -
chr3    148793835   148801418   ENSG00000071794:I3  -
chr3    148801419   148801522   ENSG00000071794:E3  -
chr3    148801523   148802468   ENSG00000071794:I2  -
chr3    148802469   148802676   ENSG00000071794:E2  -
chr3    148802677   148804103   ENSG00000071794:I1  -
chr3    148804104   148804291   ENSG00000071794:E1  -
chr3    148804291   148804292   ENSG00000071794:E1  -
chr3    148804292   148804309   ENSG00000071794:E1  -
chr3    148804309   148804317   ENSG00000071794:E1  -
chr3    148804317   148804341   ENSG00000071794:E1  -